CRITICAL🇬🇧 English

CVE-2026-39834

Integer overflow w Golang Crypto SSH — nieskończona pętla przy zapisie >4GB

CVSS 9.1pub. 2026-05-22upd. 2026-05-28

Podatność w bibliotece Golang Crypto powoduje integer overflow podczas zapisu danych większych niż 4GB przez kanał SSH, co skutkuje nieskończoną pętlą wysyłającą puste pakiety. Prowadzi to do trwałego zablokowania dostępności usługi (DoS) oraz naruszenia integralności danych.

Pokaż oryginał (EN)

When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation.

🤖 Analiza AI
Jak działa

Podczas wywołania metody Write na kanale SSH z danymi przekraczającymi 4GB, wewnętrzne obliczenie rozmiaru ładunku (payload) dokonywane jest na zmiennej podatnej na przepełnienie całkowite (integer overflow, CWE-190). Przepełnienie powoduje, że pętla zapisu traci zdolność do postępu i kręci się w nieskończoność, nieprzerwanie wysyłając puste pakiety. Przyczyną jest użycie zbyt wąskiego typu całkowitego, który ulega truncation przy wartościach powyżej 2^32 bajtów. Poprawka polega na zastąpieniu porównania rozmiaru typem int64, eliminując możliwość przepełnienia.

Skutki

Atakujący lub niesprawne oprogramowanie mogą doprowadzić do trwałego zablokowania procesu obsługującego kanał SSH (Denial of Service), uniemożliwiając jego dalsze działanie. Ponadto wysyłanie pustych pakietów zamiast właściwych danych narusza integralność przesyłanych informacji.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Poprawka została wprowadzona w changelist https://go.dev/cl/781663 — zaleca się aktualizację biblioteki golang.org/x/crypto do wersji zawierającej tę zmianę. Należy monitorować ogłoszenia projektu Go pod adresem https://groups.google.com/g/golang-announce.

Kogo dotyczy

Biblioteka Golang Crypto (golang.org/x/crypto) — wersje wskazane w referencjach producenta (patrz: https://pkg.go.dev/vuln/GO-2026-5020)

Uwagi

Podatność jest śledzona jako GO-2026-5020 w bazie podatności Go. Zgłoszenie błędu dostępne pod numerem https://go.dev/issue/79567.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
  • Golang Crypto

    APP
    Golang
    < 0.52.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2026-39832CRITICAL9.1PL ✓ten sam produkt

Golang Crypto: pominięcie ograniczeń przy przekazywaniu kluczy do zdalnego agenta SSH

CVE-2026-39833CRITICAL9.1PL ✓ten sam produkt

Golang Crypto: brak wymuszenia ograniczenia ConfirmBeforeUse w NewKeyring()

CVE-2026-39831CRITICAL9.1PL ✓ten sam produkt

Brak weryfikacji flagi User Presence w FIDO/U2F w Golang Crypto

CVE-2026-39830CRITICAL9.1PL ✓ten sam produkt

Golang Crypto: resource leak przez niezamawiane odpowiedzi SSH global request

CVE-2026-42508CRITICAL9.1PL ✓ten sam produkt

Nieprawidłowa weryfikacja unieważnionych kluczy CA w Golang Crypto