AktualnościKryptoWada w Core Lightning może powodować ciągłe awarie węzłów po aktualizacji, dopóki zapisany wyzwalacz nie zostanie usunięty

Wada w Core Lightning może powodować ciągłe awarie węzłów po aktualizacji, dopóki zapisany wyzwalacz nie zostanie usunięty

Autor: CryptoNewsNet·

Najważniejsze informacje

  • •Wada dotyczy wersji Core Lightning od v25.02 do v26.04 i została publicznie ujawniona przez badacza Nishanta Bansala 24 października.
  • •Spreparowane ogłoszenie kanału wskazujące ten sam identyfikator węzła jako oba punkty końcowe jest akceptowane, zapisywane w gossip_store i powoduje awarię węzła przy każdym ponownym uruchomieniu, ponieważ graf routingu próbuje wstawić ten węzeł dwukrotnie.
  • •Zapobiegawcza poprawka została scalona 24 kwietnia i wydana w wersji v26.04.1 25 kwietnia, na kilka miesięcy przed październikowym ujawnieniem, które zwróciło uwagę na tę wadę.
  • •Ponieważ poprawka waliduje tylko przychodzące ogłoszenia, a uruchamianie nadal wczytuje zapisane rekordy, operatorzy muszą ręcznie usunąć złośliwy wpis z gossip_store, aby przywrócić awaryjny węzeł.
  • •Węzeł offline nie może monitorować łańcucha pod kątem odwołanych stanów kanałów ani płatności z ograniczonym czasem, więc długotrwałe awarie mogą narazić środki operatora na ryzyko.
Wada w Core Lightning może powodować ciągłe awarie węzłów po aktualizacji, dopóki zapisany wyzwalacz nie zostanie usunięty

Wada w Core Lightning może powodować ciągłe awarie węzłów po aktualizacji, dopóki zapisany wyzwalacz nie zostanie usunięty

Ujawniona wada w Core Lightning, oprogramowaniu dla sieci płatności Lightning Bitcoina, może powodować awarię węzła przy każdym ponownym uruchomieniu nawet po aktualizacji, ponieważ złośliwe ogłoszenie, które wywołało awarię, pozostaje zapisane na dysku.

Badacz Nishant Bansal ujawnił problem 24 października, wskazując wersje od v25.02 do v26.04 jako dotknięte. Po zapisaniu ogłoszenia każde ponowne uruchomienie wczytuje ten sam wyzwalacz, a zdaniem Bansala operator musi ręcznie usunąć problematyczny rekord, aby przywrócić działanie węzła.

Bitcoin Optech, techniczny newsletter śledzący rozwój inżynierii Bitcoina, zwrócił uwagę na ten problem 30 października, ale zapobiegawcza poprawka ma już kilka miesięcy. Core Lightning scalił pull request #9082 24 kwietnia i wydał poprawkę w wersji v26.04.1 25 kwietnia. Październikowe ujawnienie dotyczy zatem wady, której zapobiegawcza poprawka była dostępna od kwietnia.

Dlaczego poprawka nie usuwa zapisanego wyzwalacza

Ogłoszenia kanałów informują węzły o połączeniach w grafie routingu Lightning. Płatności przeskakują przez te zarejestrowane połączenia, więc każdy węzeł routingu zależy od dokładnej kopii grafu, aby przenosić środki. W tym przypadku spreparowane ogłoszenie wskazało ten sam, wcześniej nieznany węzeł jako oba punkty końcowe. Podatne oprogramowanie je zaakceptowało, zapisało na dysku w gossip_store, a następnie wczytało do grafu routingu.

Graf próbował następnie wstawić ten węzeł dwukrotnie. Zabezpieczenie przed duplikatami przerwało działanie gossipd, komponentu obsługującego te ogłoszenia, a Core Lightning uznał tę awarię za krytyczną dla całego węzła.

Poprawka sprawdza kolejność punktów końcowych przed akceptacją ogłoszenia. Wymaganie, aby pierwszy identyfikator węzła był ściśle mniejszy od drugiego, odrzuca również identyczne identyfikatory, co zapobiega akceptacji i zapisaniu zniekształconych danych wejściowych.

Walidacja dotyczy jednak tylko przychodzących ogłoszeń. Podczas uruchamiania nadal wczytywane są rekordy już obecne w gossip_store, a aktualizacja nie usuwa złośliwego rekordu zapisanego przed awarią. Dlatego zdaniem Bansala wymaganiem odzyskiwania jest ręczne usunięcie złośliwego rekordu z gossip_store.

Samo czyszczenie pozostawia również podatną instalację narażoną na kolejną awarię: według ujawnienia atakujący może ponownie wysłać to samo ogłoszenie, dopóki kontrolowany przez atakującego funding output — wyjście on-chain, które otworzyło kanał — pozostaje niewydane.

Ekspozycja przez przekazywanie, wskazówki dotyczące aktualizacji i ryzyko przestojów

Bitcoin Optech zauważa, że wersje Core Lightning sprzed v25.02 mogły akceptować i przekazywać takie ogłoszenia bez samodzielnego ulegania awariom. Atakujący nie potrzebował zatem bezpośredniego połączenia z każdym podatnym węzłem, ponieważ przekazane ogłoszenie jest dalej przesyłane do peerów każdego węzła i może przenosić zniekształcony rekord głębiej w sieć.

Dla operatorów wybierających aktualizację teraz, v26.04.1 oznacza pierwszą wersję zawierającą poprawkę tej wady. Na dzień 2 listopada najnowszą wersją projektu jest v26.06.9, wydana 7 października, której instalację twórcy zdecydowanie zalecają.

Przestój wiąże się z ryzykiem związanym z monitorowaniem płatności wykraczającym poza niedostępność usługi. W Lightning egzekwowanie zasad kanałów spoczywa na operatorze węzła. Bansal ostrzega, że węzeł offline nie może monitorować łańcucha pod kątem odwołanego stanu kanału ani płatności z ograniczonym czasem, które muszą zostać zgłoszone przed wygaśnięciem. Przeoczenie tych zdarzeń może narazić środki na ryzyko.

Oryginalne doniesienia: CryptoSlate