Core Lightning-fout kan nodes blijven laten crashen na een upgrade totdat een opgeslagen trigger is verwijderd
Belangrijkste punten
- •De fout treft Core Lightning-versies v25.02 tot en met v26.04 en werd op 24 oktober openbaar gemaakt door onderzoeker Nishant Bansal.
- •Een vervalste kanaalaankondiging die hetzelfde node-ID als beide eindpunten noemt, wordt geaccepteerd, naar de gossip_store geschreven en laat de node bij elke herstart crashen, omdat de routeringsgrafiek het knooppunt tweemaal probeert in te voegen.
- •De preventieve fix werd op 24 april samengevoegd en op 25 april uitgebracht in versie v26.04.1, maanden voordat de openbaarmaking in oktober aandacht voor het defect bracht.
- •Omdat de patch alleen inkomende aankondigingen valideert en het opstarten nog steeds opgeslagen records leest, moeten operators het kwaadaardige item handmatig uit de gossip_store verwijderen om een crashende node te herstellen.
- •Een offline node kan de blockchain niet controleren op ingetrokken kanaalstadia of tijdgebonden betalingsclaims, dus langdurige crashes kunnen de middelen van de operator in gevaar brengen.

Core Lightning-fout kan nodes blijven laten crashen na een upgrade totdat een opgeslagen trigger is verwijderd
Een openbaar gemaakte fout in Core Lightning, de software voor Bitcoin's Lightning-betalingsnetwerk, kan ervoor zorgen dat een node bij elke herstart blijft crashen, zelfs na een upgrade, omdat de kwaadaardige aankondiging die de crash veroorzaakte op schijf is opgeslagen.
Onderzoeker Nishant Bansal maakte het probleem op 24 oktober bekend en identificeerde versies v25.02 tot en met v26.04 als getroffen. Zodra de aankondiging is opgeslagen, laadt elke herstart dezelfde trigger opnieuw, en volgens Bansal moet de operator het foutieve record handmatig verwijderen om de node te herstellen.
Bitcoin Optech, een technische nieuwsbrief die Bitcoin-technische ontwikkelingen volgt, wees op 30 oktober op het probleem, maar de preventieve patch is maanden oud. Core Lightning voegde pull request #9082 op 24 april samen en bracht de fix uit in versie v26.04.1 op 25 april. De openbaarmaking in oktober beschrijft dus een fout waarvan de preventieve fix al sinds april beschikbaar was.
Waarom de patch een opgeslagen trigger niet verwijdert
Kanaalaankondigingen informeren nodes over verbindingen in de Lightning-routeringsgrafiek. Betalingen hoppen via deze geregistreerde verbindingen, dus elk routeringsknooppunt is afhankelijk van een accurate kopie van de grafiek om middelen te verplaatsen. In dit geval noemde een vervalste aankondiging hetzelfde, eerder onbekende knooppunt als beide eindpunten. Kwetsbare software accepteerde de aankondiging, schreef deze naar de gossip_store op schijf en laadde deze vervolgens in de routeringsgrafiek.
De grafiek probeerde dat knooppunt vervolgens tweemaal in te voegen. Een beveiliging tegen duplicaten staakte gossipd, de component die deze aankondigingen verwerkt, en Core Lightning behandelde die fout als fataal voor de hele node.
De patch controleert de volgorde van de eindpunten voordat een aankondiging wordt geaccepteerd. Door te eisen dat het eerste node-ID strikt kleiner is dan het tweede worden ook gelijke ID's afgewezen, waardoor de misvormde invoer vanaf het begin niet wordt geaccepteerd en opgeslagen.
De validatie geldt echter alleen voor inkomende aankondigingen. Bij het opstarten worden nog steeds records gelezen die al in de gossip_store staan, en een upgrade verwijdert geen kwaadaardig record dat vóór de crash is opgeslagen. Daarom is Bansals herstelvereiste het handmatig verwijderen van het kwaadaardige record uit de gossip_store.
Opschoning alleen laat een kwetsbare installatie bovendien kwetsbaar voor een nieuwe crash: volgens de openbaarmaking kan een aanvaller dezelfde aankondiging opnieuw versturen zolang de door de aanvaller beheerde funding-output—de on-chain output waarmee het kanaal werd geopend—ongebruikt blijft.
Relayblootstelling, upgrade-advies en risico van uitval
Bitcoin Optech merkt op dat Core Lightning-versies vóór v25.02 dergelijke aankondigingen konden accepteren en doorsturen zonder zelf te crashen. Een aanvaller had dus geen directe verbinding met elke kwetsbare node nodig, omdat een doorgestuurde aankondiging wordt doorgegeven aan de peers van elke node en het misvormde record dieper in het netwerk kan vervoeren.
Voor operators die nu kiezen voor een upgrade markeert v26.04.1 de eerste release met de fix voor dit defect. Per 2 november is de nieuwste release van het project v26.06.9, uitgebracht op 7 oktober, die beheerders sterk aanbevelen te installeren.
Uitval brengt naast onbeschikbaarheid van de dienst ook een risico voor de betalingsbewaking met zich mee. In Lightning ligt het handhaven van de kanaalregels bij de node-operator. Bansal waarschuwt dat een offline node de blockchain niet kan controleren op een ingetrokken kanaalstaat of een tijdgebonden betalingsclaim die vóór het verstrijken moet worden gedaan. Het missen van deze gebeurtenissen kan middelen in gevaar brengen.
Originele berichtgeving: CryptoSlate