Core Lightning wydaje wersję v26.06.10 z poprawkami bezpieczeństwa i wzywa operatorów węzłów Bitcoina do rotacji rune
Najważniejsze informacje
- •Core Lightning w wersji 26.06.10 zawiera poprawki bezpieczeństwa, a opiekunowie projektu wzywają wszystkich użytkowników do możliwie szybkiej aktualizacji, równolegle z odrębnym przeglądem poświadczeń używanych do zdalnych poleceń.
- •Aktualizacja zamyka sposób obejścia limitów rune dla nazw parametrów poprzez zduplikowane nazwy lub warianty interpunkcyjne, naprawia awarię commando spowodowaną ponownym użyciem identyfikatora polecenia i odrzuca teraz zbyt duże rune.
- •Operatorom zaleca się powiązanie każdego rune commando z identyfikatorem węzła aplikacji, zablokowanie rune, których nie potrafią rozliczyć, oraz wydanie nowych rune z ostrzejszymi ograniczeniami.
- •Wydanie dodaje sprawdzanie podpisów transakcji przy otwieraniu kanałów z podwójnym finansowaniem i splicingu, odrzuca dust limity powyżej 5 000 satoshi przy otwieraniu kanałów i blokuje otwarcia v2 z zerowym potwierdzeniem, chyba że są jawnie dozwolone dla danego węzła równorzędnego.
- •Jest to trzecie z rzędu wydanie punktowe opublikowane bez okresu embargo, z zatrzymanymi testami bezpieczeństwa, które mają utrudnić przekształcenie poprawek w działające exploity i dać użytkownikom więcej czasu na aktualizację.

Core Lightning, jedna z głównych implementacji oprogramowania służących do obsługi węzłów płatności Lightning Bitcoina, wydała wersję 26.06.10 z nowym zestawem poprawek bezpieczeństwa, a opiekunowie projektu wzywają wszystkich użytkowników do możliwie szybkiej aktualizacji. Aktualizacja łączy łatkę oprogramowania z dodatkowym zadaniem dla operatorów: przeglądem poświadczeń umożliwiających wykonywanie zdalnych poleceń na ich węzłach — kroku, który opiekunowie opisują jako odrębny od instalacji nowej wersji. Łączy ona wzmacnianie wtyczki obsługującej zdalne polecenia ze zmianami w sposobie, w jaki węzły oceniają otwieranie kanałów i warunki płatności.
Jest to trzecie z rzędu wydanie punktowe opublikowane bez okresu embargo. Wersje 26.06.8 i 26.06.9 stosowały to samo podejście, z poprawkami udostępnianymi publicznie od razu. Podobnie jak w tamtych wydaniach, opiekunowie ponownie wstrzymali testy związane z poprawkami bezpieczeństwa. Według not wydania utrudnia to przekształcenie poprawek w działające exploity i daje użytkownikom więcej czasu na aktualizację. Model ujawniania informacji określa również stawkę dla operatorów: raz opublikowane wydanie ujawnia też słabości, które eliminuje, co oznacza, że węzeł, który nie został zaktualizowany, działa na oprogramowaniu z udokumentowanymi lukami.
Przegląd poświadczeń dodany do listy czynności aktualizacji
Rune i commando znajdują się w centrum prac bezpieczeństwa tej aktualizacji. Commando pozwala bezpośrednio połączonemu węzłowi zażądać od węzła wykonania polecenia, a węzeł zazwyczaj potrzebuje do tego rune — poświadczenia autoryzacyjnego.
Aktualizacja zamyka sposób obejścia limitów rune dla nazw parametrów poprzez użycie zduplikowanych nazw lub wariantów ze zniekształconą interpunkcją. Naprawia również awarię commando wynikającą z ponownego użycia identyfikatora polecenia po nieudanym poleceniu. Zbyt duże rune są teraz odrzucane w całości; wcześniej oprogramowanie mogło poświęcać czas kwadratowy na ich dekodowanie.
Opiekunowie zalecają powiązanie każdego rune używanego przez commando z identyfikatorem węzła aplikacji, która go używa. Przy tym ograniczeniu id rune nie może być używane z żadnego innego miejsca. Operatorom zaleca się również zablokowanie (blacklist) wszystkich rune, których nie potrafią rozliczyć, za pomocą polecenia blacklistrune, a następnie wydanie nowych rune z ostrzejszymi ograniczeniami. Czytane łącznie kroki te stanowią audyt każdego poświadczenia mogącego wywołać zdalne polecenia na węźle, z cofnięciem niewyjaśnionych rune przed wydaniem zamienników.
Poprawki kanałów i płatności
Nowa wersja sprawdza podpisy transakcji węzła równorzędnego podczas otwierania kanałów z podwójnym finansowaniem oraz splicingu — operacji polegającej na dostosowaniu środków kanału bez jego zamykania. Zgodnie z changelogiem jest to zgodne ze specyfikacją BOLT 2 protokołu Lightning, która obejmuje ustanawianie kanałów i normalną pracę peer-to-peer.
Inna poprawka dotyczy warunkowego kontraktu płatniczego zwanego HTLC. Świeco usunięte HTLC mogło zostać pomylone z aktywnym, mającym wspólny hash płatności, kwotę i termin ważności, co powodowało, że węzeł odrzucał aktywną płatność, podczas gdy jego węzeł równorzędny mógł ją nadal zrealizować.
Obsługa otwierania kanałów jest również bardziej rygorystyczna. Węzły odrzucają teraz otwarcie kanału, gdy węzeł równorzędny proponuje dust limit — próg, poniżej którego wyniki traktowane są jako kurz — powyżej 5 000 satoshi; według changelogu stare zachowanie pozwalało węzłowi równorzędnemu zamienić saldo węzła na opłaty podczas wymuszonego zamknięcia. W przypadku otwarcia z podwójnym finansowaniem odrzucany jest również dust limit węzła równorzędnego powyżej rezerwy kanału, a otwarcie v2 z zerowym potwierdzeniem — kanał uruchamiany przed potwierdzeniem transakcji finansującej — jest odrzucane, chyba że operator skonfigurował węzeł tak, by akceptował je od tego węzła równorzędnego. Podwójne finansowanie pozostaje eksperymentalne, a opiekunowie odradzają kanały z zerowym potwierdzeniem wobec niezaufanych węzłów.
Inne zmiany zapewniają bezpieczną domyślną odpowiedź, gdy hook wtyczki zawiedzie, zamiast awarii lub zawieszenia. Podwyżki opłat splice używają teraz co najmniej 25/24 poprzedniego feerate, czego wymagają węzły takie jak Eclair. Węzły, które uruchamiały buildy deweloperskie, nie mogą przejść na niższą wersję z serii 26.06.x, ponieważ ich schemat bazy danych jest nowszy. Wydanie zawiera reprodukowalne binaria dla Ubuntu 22.04, 24.04 i 26.04 oraz obrazy Dockera.
Ujawnianie informacji i harmonogram wydania
Luki usunięte w tym wydaniu zgłosiło blisko 20 źródeł z podaniem nazwiska, w tym The Bitcoin Red Team, Matt Morehouse i Niklas Gögge. Inni poprosili o zachowanie anonimowości.
GitHub podaje datę wydania tej wersji na 4 listopada, podczas gdy oznaczony changelog wskazuje 5 listopada. Aktualizacja następuje po odrębnej awarii stored-trigger ujawnionej 2 listopada. W chwili sporządzania raportu bitcoin handlował w okolicach 76 002 dolarów, spadając o 5,29% w ciągu 24 godzin.