Hög svårighetsgrad i Bitcoin-programvara avslöjad två år efter fixen

Bugg med "hög" svårighetsgrad i Bitcoin-mjukvaran avslöjades 2 år efter fix – Bitcoin Core-buggEn stor bugg i Bitcoin Core-programvaran, inte att förväxla med Bitcoin-systemet, kunde ha tillåtit angripare att stjäla pengar, försena affärer eller dela upp det största blockkedjenätverket i motstridiga versioner om det inte hade patchats i hemlighet för två år sedan.

Felet i koden

En artikel som publicerades på onsdagen av Braydon Fuller, en protokollingenjör på kryptoshoppingsajten Purse, och Javed Khan, en senior utvecklare av Handshake-protokollet, säger att de upptäckte sårbarheten i juni 2018.

Felet har tilldelats en allvarlighetsgrad på 7,8 på en skala från 1 till 10, vilket anses vara "högt" (9 och högre anses vara "kritiskt"). Problemet orsakades av "fjärrnoder" som inte lyckades radera ogiltiga transaktioner från deras minne, sa Khan.

Underlåtenhet att rensa sådana transaktioner kan leda till en attack som laddar offernoden med föråldrad data i vad som kallas "okontrollerad resursförbrukning", vilket i slutändan får själva noden att stängas av, står det i dokumentet.

Layer 2 (L2) lösningar som Lightning Network, det experimentella betalningssystemet byggt på Bitcoin blockchain, var i riskzonen på grund av denna bugg. Bitcoin fulla noder riskerade dock inte att förlora pengar.

Inga försök att utnyttja problemet avslöjades, skrev Khan och Fuller. Sårbarheten avslöjades inte offentligt på mer än två år eftersom nodoperatörer tog längre tid än förväntat att uppdatera, sa Fuller.

Även om buggen har åtgärdats, belyser dess avslöjande svårigheterna med att bygga en global monetär standard på mänskligt skapade programmeringsspråk, för att inte tala om de höga tekniska barriärerna för att utveckla världens största kryptovaluta.

Felet i koden infogades i Bitcoin Core i november 2017. Ungefär 50 % av Bitcoin-noderna vid den tiden var potentiellt utsatta för en attack, enligt dokumentet. Tidigare versioner av Bitcoin Core upplevde inte denna typ av problem.

Inte bara Bitcoin Core

Khan sa att sårbarheten kunde ha tillåtit en angripare att stjäla pengar från noder som hade öppna kanaler till Lightning. Bitcoin Core-versionerna 0.16.0 och 0.16.1 analyserades och korrigerades av utvecklaren Matt Corallo efter Fullers avslöjande till Core-teamet i juli 2018.

Bitcoin Core är referensimplementeringen, eller standardversionen, av nätverksprogramvaran som många andra härrör från. Enligt dokumentet kan buggen också ha påverkat flera andra implementeringar av Bitcoin och dess derivat:

  • Bitcoin Knots v0.16.0
  • Alla betaversioner av Bcoin upp till v1.0.0-pre
  • Alla versioner av Btcd upp till v0.20.1-beta
  • Litecoin Core v0.16.0
  • Namecoin Core v0.16.1
  • Alla versioner av Dcrd upp till v1.5.1.

Alla dessa implementeringar har korrigerats.