Egy hiba lehetővé tette a Bitcoin bányászoknak, hogy mások csomópontjait használják

Cikk meghallgatása

00:00 00:00

A Bitcoin Core node-szoftver hivatalos oldalán május ötödikén tettek közzé a fejlesztők egy hibát, amely lehetővé tette a bányászok számára, hogy távolról összeomlasszák mások node-jait és kódfuttatást hajtsanak végre azokon. A CVE-2024-52911 nevet kapott sebezhetőség a Bitcoin Core 0.14.1-es és 28.4-es verziói között érintette a szoftvert. Cory Fields fejlesztő jelezte először a hibát, majd a 31112-es számú pull request (PR) segítségével hozzá is járult a kritikus hiba javításához. A hiba egyébként valószínűleg a publikációig fel sem tűnt senkinek (ahogy a többi hasonló ilyen hiba esetén sem gyakori ez) és az is valószínűtlen, hogy bárki kihasználta volna, mert a támadás rendkívül költséges lett volna.

A támadáshoz ugyanis a bányásznak nagy mennyiségű számítási kapacitást kellett volna különleges blokkok kibányászására fordítani. Ezek az érvénytelen blokkok nem jogosítottak volna jutalomra, így a bányász biztosan pénzt veszített volna. Viszont egy ilyen, speciálisan összeállított blokkot előállító bányász vagy összeomlaszthatta volna az érintett node-okat (csomópontokat), vagy a hibát kihasználva átvehette volna azok memóriája felett az irányítást a távoli kódfuttatáshoz. A Bitcoin Core elismerte, hogy a távoli kódfuttatás lehetséges volt, bár nem hivatkozott konkrét esetekre. Kiemelték a támadás magas költségét, a hiba régóta fennállását, valamint a blokkok adatára vonatkozó korlátokat, amelyek valószínűtlenné tették a csomópontok érdemi átvételét. A hivatalos közlemény a hibát szkriptértelmező összeomlásként írja le.

Részletesen a Bitcoin Core első memóriakezelési hibájáról

A Bitcoin Core egy tranzakció‑ellenőrző modult használ (ezt hívják szkriptértelmezőnek). Ez a modul több szálon fut, és gyorsítás érdekében előre kiszámolt adatokat tárol a memóriában. Előre kiszámolja a tranzakciók bizonyos adatait, ezt gyorsítótárba teszi és a tranzakció ellenőrzését már háttérszálak végzik többek között a gyorsítótár adatai alapján is. A hiba itt abban van, hogy a szkriptértelmező már felszabadította a gyorsítótár egy részét, miközben már szálak még használták ugyanazt a részt. Ilyenkor a program olyan memóriát olvas, amelyben akár támadó által manipulált tartalom is lehet. Ez az úgynevezett „use-after-fre” memóriahiba, amely lehetővé teszi a távoli kódfuttatást.

Mivel a Bitcoin full node frissítése önkéntes, és a szoftverfrissítések nem automatikusak, a hálózat egy nem elhanyagolható része nem állt még át a 29-es vagy újabb verzióra. Egy becslés szerint a Bitcoin csomópontok akár 43%-a még mindig sebezhető, v29 előtti szoftveren fut. Cory Fields már 2024 novemberében felfedezte a hibát, és privátban jelentette is. A felfedezéstől számított négy nappal később Pieter Wuille benyújtotta a javítási javaslatot 31112-es pull requestként, amelynek leírása szándékosan hétköznapi, karbantartási jellegű beavatkozásról írt és így nem keltett feltűnést. Valójában azonban a Bitcoin Core ellenőrzési sor visszatérési kezelését és a szkriptvalidálásokat javította. A gyors konszenzus után a javítás 2024 decemberéig bekerült az éles verzióba is. A Bitcoin Core 29.0 a javítással együtt jelent meg 2025 áprilisában, az utolsó sebezhető kiadássorozat (28.x) pedig 2026. április 19-én érte el az életciklusa végét. Ennyi idő már elég volt a Bitcoin Core szerint mindenkinek a frissítéshez, ezért most május ötödikén be is jelentették a hibát. A hiba javítása nem változtatta meg a Bitcoin konszenzusszabályait. A hiba a csomópont szoftverében és annak memóriakezelésében volt jelen, a javítás pedig már megtalálható a Bitcoin Core v29-es és újabb kiadásaiban.

Jelen írás nem minősül befektetési tanácsadásnak. Részletes jogi információ