Nepataisyti „Eclair“ mazgai gali vėl sugesti paleidus iš naujo
Dėl naujai atskleisto nefinansuoto kanalo trūkumo „Eclair“, „Bitcoin Lightning“ diegimas, gali pakartotinai sugesti, o užpuolikas neišleis BTC grandinėje. Defektas paveikė pasiekiamus mazgus, kuriuose veikia 0.14.0 ir senesnės versijos, o dėl išsaugotų kanalo įrašų paleisti iš naujo neužtenka paslaugai atkurti.
Tyrėjas Erickas Cestari paskelbė nuolatinės avarijos radinį rugsėjo 30 d. ir paaiškino jį kartu su atskira atsisakymo teikti paslaugas klaida spalio 1 d. kūrėjo įraše. Abi buvo pataisytos 0.14.1 versijoje, išleistoje liepos mėn., prieš paskelbiant viešai. ACINQ dabar rekomenduoja naujesnę v0.14.3 saugos versiją atskiriems pažeidžiamumams.
Kodėl iš naujo paleisti gali nepavykti
„Eclair“ apribojo laukiančių kanalų, kuriuos galėtų atidaryti lygiavertė programa, skaičių, tačiau nenuoseklūs laikinųjų ir galutinių kanalų identifikatorių patikrinimai leido sumažinti nefinansuojamų kanalų skaičių. Kenkėjiškas partneris gali kaupti išsaugotas užklausas netransliuodamas finansavimo operacijos arba nemokėdamas grandinės mokesčio.
Šis skirtumas yra svarbus: BTC, kuris paprastai reikalingas kanalui finansuoti, neprivalo būti įsipareigojęs, kad pažeidžiamas mazgas patirtų atminties ir duomenų bazės išlaidų. Atakai vis tiek reikėjo skaičiavimo išteklių ir tinklo srauto.
„Cestari“ koncepcijos įrodyme „Eclair v0.14.0“ veikė „regtest“, „Bitcoin“ vietinėje testavimo aplinkoje. Jis pranešė, kad mazgas išnaudojo 4 GB Java virtualios mašinos krūvą maždaug po 47 minučių 43 sekundžių, o kanalo duomenų bazėje buvo sukauptos 217 623 eilutės. Tai vienas laboratorinis etalonas, o ne universali atakos trukmė.
Pradinė avarija paliko šiuos įrašus diske. Paleidimo metu Eclair iš naujo įkėlė kanalus ir vėl išnaudojo atmintį. Cestari apibūdino krūvos padidinimą arba suklastotų kanalo įrašų pašalinimą rankiniu būdu kaip atkūrimo priemones. Pakartotiniai paleidimai iš naujo paliko pagrindinę apkrovą.
Demonstracija susijusi su vieno pažeidžiamo mazgo prieinamumu. Tai nenustato tiesioginio išnaudojimo ar nepataisytų mazgų skaičiaus.
ACINQ sujungė PR #3324 liepos 17 d. Pleistras sustiprino pasikartojančių kanalų patikrinimus, o v0.14.1 buvo išsiųstas liepos 29 d. Pasak Ericko Cestari / Delving Bitcoin, turi įtakos 0.14.0 ir senesnės versijos, o 0.14.1 ar naujesnė versija sprendžia šias dvi atsisakymo teikti paslaugas išvadas.
Antroji klaida, kurią Matt Morehouse / lnfuzz atskleidė kaip LNF-2026-0003, buvo kanalo atidarymo lenktynės, kurios paliko našlaičius kanalo procesus, eikančius atmintį arba procesorių. Jo patarimas sako, kad išbandytas mazgas atsikūrė atjungus arba paleidus iš naujo be nuostolių. Šis atkūrimo rezultatas priklauso lenktynių klaidai, o ne nuolatiniam duomenų bazės potvyniui.
Šios išvados taip pat skiriasi nuo fondo praradimo pažeidžiamumų, kuriuos „CryptoSlate“ apėmė rugsėjo 21 d., kurie buvo pataisyti 0.14.3 versijoje. Todėl liepos mėn. minimalus pataisymas neturėtų būti traktuojamas kaip visa dabartinė saugumo rekomendacija.
ACINQ rekomenduoja atnaujinti į v0.14.3, išleistą rugsėjo 14 d., nes kenkėjiški mazgai gali išnaudoti kai kurias ištaisytas problemas. Naujų nefinansuojamų kanalų potvynių prevencija ir jau perkrautos duomenų bazės atkūrimas yra atskiri operatorių rūpesčiai.
