AktualnościKryptoBitcoin Core 32.0 celuje w wydanie 10 października z szybszą weryfikacją bloków i poprawkami bezpieczeństwa

Bitcoin Core 32.0 celuje w wydanie 10 października z szybszą weryfikacją bloków i poprawkami bezpieczeństwa

Autor: Decrypt·

Najważniejsze informacje

  • Bitcoin Core 32.0 przeszedł w poniedziałek do testów wersji kandydującej, a programiści celują w wydanie końcowe 10 października, choć wyniki test mogą przesunąć ten harmonogram.
  • Aktualizacja przyspiesza weryfikację bloków dzięki równoległemu odczytywanie informacji z bazy danych, zmniejszając obciążenie operatorów węzłów bez zmiany tempa produkcji bloków przez Bitcoin.
  • Poprawka bezpieczeństwa zapobiega wywoływaniu poleceń za pomocą spreparowanych nazw portfeli w systemach innych niż Windows, gdzie uwierzytelniony użytkownik mógł tworzyć portfele, a funkcja walletnotify była skonfigurowana do uruchamiania poleceń.
  • Współtwórca Matthew Zipkin odkrył podatność umożliwiającą wyczerpanie pamięci w nowym serwerze HTTP Bitcoin Core podczas jego audytu z użyciem modelu AI Kimi K3, a recenzja wykazała, że żądania nieuwierzytelnione również mogą powodować wzrost zużycia pamięci przy włączonym interfejsie REST.
  • Po poprawieniu łatki 16 nieuwierzytelnionych połączeń wywołało wzrost zużycia pamięci o około 3 MB w ciągu 90 sekund, wobec 3,2 GB wcześniej, a poprawka została scalona z Bitcoin Core 32.0 5 września.
Bitcoin Core 32.0 celuje w wydanie 10 października z szybszą weryfikacją bloków i poprawkami bezpieczeństwa

Bitcoin Core 32.0, oprogramowanie open-source umożliwiające komputerom niezależną weryfikację płatności Bitcoin, przeszedł w poniedziałek do testów wersji kandydującej, zgodnie z harmonogramem projektu. Wersje kandydujące to wersje wstępne publikowane po to, aby testujący mogli wykryć pozostałe problemy przed finalnym wydaniem. Programiści celują w 10 października jako datę publikacji gotowej wersji, choć wyniki testów mogą jeszcze przesunąć ten harmonogram.

Aktualizacja dotyczy przede wszystkim operatorów węzłów i programistów, którzy używają tego oprogramowania do obsługi portfeli i innych usług, a nie codziennych użytkowników aplikacji portfelowych. Głównym tematem jest wydajność: według wersji roboczej notatek do wydania aktualizacja może przyspieszyć sprawdzanie bloków dzięki równoległemu odczytywanie informacji z bazy danych, bez zmiany tempa, w jakim Bitcoin produkuje bloki. Szybsza weryfikacja ma znaczenie, ponieważ podstawowym zadaniem pełnego węzła jest sprawdzanie każdego nowego bloku pod kątem zgodności z zasadami sieci — bloki pojawiają się mniej więcej co dziesięć minut — więc skrócenie tej pracy zmniejsza stałe obciążenie związane z weryfikacją płatności bez zaufanej strony trzeciej.

Cztery polecenia portfela będą również domyślnie używać nowszego formatu wymiany częściowo podpisanych transakcji między portfelami a urządzeniami podpisującymi — formatu, który pozwala niedokończonej transakcji zbierać podpisy na różnych urządzeniach przed jej zakończeniem — choć aplikacje mogą w razie potrzeby nadal żądać starszej wersji.

Drugim priorytetem wydania jest bezpieczeństwo. Jedna z poprawek zapobiega wywoływaniu poleceń na komputerze węzła za pomocą spreparowanych nazw portfeli. Błąd dotyczył systemów innych niż Windows w przypadkach, gdy uwierzyteln użytkownik mógł tworzyć portfele, a funkcja walletnotify była skonfigurowana tak, by uruchamiać polecenia przy transakcjach portfela. Ta klasa błędów budzi szczególną uwagę, ponieważ zaciera granicę między danymi a instrukcjami: nazwa portfela, zwykle będąca jedynie etykietą, mogła wchodzić w interakcję z wykonywaniem poleceń przez funkcję walletnotify, a łatka odcina tę ścieżkę.

Osobna łatka rozwiązuje problem nadmiernego zużycia pamięci w nowym serwerze HTTP projektu, który obsługuje żądania z podłączonych aplikacji. Współtwórca Matthew Zipkin, publikujący pod pseudonimem pinheadmz, opisał „scenariusz wyczerpania pamięci” w swoim wniosku o łatkę. Jego wstępna ocena ograniczała ryzyko do klientów uwierzytelnionych.

Zipkin powiedział, że odkrył błąd podczas audytu nowego serwera HTTP Bitcoin Core z użyciem Kimi K3, modelu AI, który był również wykorzystywany przez Bitcoin Red Team do wyszukiwania podatności w oprogramowaniu Bitcoin. Wcześniejsza poprawka rozwiązała część problemu, wyjaśnił, ale pozostał sposób na wyczerpanie dostępnej pamięci komputera — stan „OOM”, czyli braku pamięci.

Podczas recenzji tej samej łatki użytkownik GitHub jeanpablojp odkrył, że żądania wysyłane bez poświadczeń również mogą powodować wzrost zużycia pamięci, gdy interfejs REST był włączony. Po poprawieniu łatki przez Zipkina recenzent zgłosił, że 16 nieuwierzytelnionych połączeń wywołało wzrost zużycia pamięci o około 3 MB w ciągu 90 sekund, w porównaniu z 3,2 GB przed zmianą. Poprawiona łatka została scalona z Bitcoin Core 32.0 5 września w ramach bieżących prac nad poprawą bezpieczeństwa oprogramowania. Przypadek nieuwierzytelniony rozszerzył zakres obaw poza wstępną ocenę, ponieważ żądania tego typu nie wymagają zaufanego, zalogowanego użytkownika.

Łatka pojawia się w okresie szerszej reakcji na podatności w oprogramowaniu związanym z Bitcoin. Producent portfeli sprzętowych BitBox załatał w sierpniu dwie poważne luki w oprogramowaniu układowym, nie odnotowując dowodów ich wykorzystania. Oddzielnie twórcy oprogramowania płatniczego Core Lightning ostrzegli operatorów węzłów o potwierdzonych podatnościach, przygotowując poprawki. Wersje kandydujące publikowane do 10 października pokażą, czy docelowa data się obroni, a poprawki zadziałają tylko tam, gdzie operatorzy zdecydują się na uruchamianie zaktualizowanej wersji.