Podatność w bibliotece Golang Crypto pozwala złośliwemu peerowi SSH na zapełnienie wewnętrznego bufora przez wysyłanie niezamawianych odpowiedzi na żądania globalne, co blokuje pętlę odczytu połączenia. Jest to groźne, ponieważ zablokowanej goroutyny nie można zwolnić nawet wywołaniem Close(), co prowadzi do wycieku zasobów per połączenie.
▸ Pokaż oryginał (EN)
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded.
Atakujący jako złośliwy peer SSH wysyła niezamawiane odpowiedzi na żądania globalne (global request responses), które trafiają do wewnętrznego bufora biblioteki. Bufor zapełnia się, co blokuje goroutynę odpowiedzialną za odczyt danych połączenia. Zablokowana goroutyna nie może zostać zwolniona przez standardowe wywołanie Close(), co skutkuje trwałym wyciekiem zasobów na każde dotknięte połączenie. Poprawka polega na odrzucaniu niezamawianych odpowiedzi globalnych zamiast umieszczania ich w buforze.
Atakujący może doprowadzić do wycieku zasobów serwera (goroutyny, pamięć) per połączenie, co przy odpowiedniej skali może skutkować odmową usługi (DoS) przez wyczerpanie zasobów systemu. Dodatkowo wysoki wynik CVSS wskazuje na istotny wpływ na poufność danych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (zmiany: go.dev/cl/781640 oraz go.dev/cl/781664). Zaleca się aktualizację biblioteki golang.org/x/crypto do wersji zawierającej poprawkę oraz śledzenie ogłoszeń na liście golang-announce.
Biblioteka Golang Crypto (golang.org/x/crypto) — wersje wskazane w referencjach producenta (go.dev/issue/79564 oraz pkg.go.dev/vuln/GO-2026-5017)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HGolang Crypto
APPGolang< 0.52.0
Powiązane podatności
Golang Crypto: brak wymuszenia ograniczenia ConfirmBeforeUse w NewKeyring()
Integer overflow w Golang Crypto SSH — nieskończona pętla przy zapisie >4GB
Golang Crypto: pominięcie ograniczeń przy przekazywaniu kluczy do zdalnego agenta SSH
Brak weryfikacji flagi User Presence w FIDO/U2F w Golang Crypto
Nieprawidłowa weryfikacja unieważnionych kluczy CA w Golang Crypto