„Core Lightning“ avarija gali išlikti ir po atnaujinimo
Atskleidus „Core Lightning“, programinės įrangos, skirtos „Bitcoin Lightning“ mokėjimo tinklui, trūkumą, mazgas gali sugesti paleidus iš naujo net po atnaujinimo, nes jį suaktyvinęs kenkėjiškas pranešimas lieka diske.
Tyrėjo Nishant Bansal spalio 24 d. paskelbtame pranešime nurodoma, kad versijos nuo 25.02 iki v26.04 yra paveiktos. Išsaugojus pranešimą, paleidus iš naujo iš naujo įkeliamas tas pats aktyviklis. Bansal sako, kad operatorius turi rankiniu būdu pašalinti pažeidžiantį įrašą, kad atkurtų mazgą.
„Bitcoin Optech“ šią problemą pabrėžė spalio 30 d., tačiau prevencinis pleistras yra mėnesių senumo. „Core Lightning“ sujungė PR #9082 balandžio 24 d., o pataisymą 26.04.1 versijoje išsiuntė balandžio 25 d. Spalio mėn. paskelbtame dokumente paaiškinama klaida, kurios prevencinis taisymas buvo pasiekiamas nuo balandžio mėn.
Kodėl pleistras neišvalo išsaugoto paleidimo
Kanalo pranešimai nurodo mazgus apie jungtis žaibo maršruto grafike. Šiuo atveju skelbime buvo pavadintas tas pats anksčiau nežinomas mazgas kaip abu galutiniai taškai. Pažeidžiama programinė įranga ją priėmė ir įrašė į diską gossip_store prieš įkeliant jį į maršruto grafiką.
Tada grafikas du kartus bandė įterpti tą mazgą. Apsauga nuo dublikatų nutraukta gossipdkomponentas, tvarkantis šiuos pranešimus, ir „Core Lightning“ tą gedimą traktavo kaip mirtiną visam mazgui.
Prieš priimdama pranešimą, pleistras patikrina galinių taškų tvarką. Reikalavimas, kad pirmojo mazgo ID būtų griežtai mažesnis nei antrojo, taip pat atmetami vienodi ID. Tai neleidžia priimti ir išsaugoti netinkamai suformuotos įvesties.
Nauja patvirtinimo patikra taikoma gaunamiems pranešimams. Paleistis vis tiek skaito jau esančius įrašus gossip_storeo atnaujinimas nepašalina kenkėjiškų įrašų, išsaugotų prieš strigtį.
„Bansal“ atkūrimo reikalavimas yra neautomatinis kenkėjiškų įrašų pašalinimas iš gossip_store. Vien tik valymas taip pat palieka pažeidžiamą instaliaciją atvirą kitai avarijai: atskleidžiama, kad užpuolikas gali pakartotinai išsiųsti tą patį pranešimą, o užpuoliko valdomas finansavimas lieka nepanaudotas.
„Bitcoin Optech“ pažymi, kad „Core Lightning“ leidimai iki 25.02 versijos galėjo priimti ir perduoti tokius pranešimus patys nesudužę. Todėl užpuolikui nereikėjo tiesioginio ryšio su kiekvienu pažeidžiamu mazgu.
Operatoriams, kurie renkasi naujinimą dabar, v26.04.1 žymi pirmąjį šio defekto pataisymą. Lapkričio 2 d. naujausia projekto versija yra v26.06.9, išleista spalio 7 d., kurią prižiūrėtojai primygtinai rekomenduoja įdiegti.
Prastova susijusi su mokėjimų stebėjimo rizika, nesusijusia su nepasiekiama paslauga. „Bansal“ įspėja, kad neprisijungęs mazgas negali stebėti grandinės, ar nėra atšauktos kanalo būsenos arba termino mokėjimo prašymo, kuris turi būti pateiktas nepasibaigus galiojimo laikui. Praleidus šiuos įvykius gali kilti pavojus lėšoms.
