CRITICAL🇬🇧 English

CVE-2026-39833

Golang Crypto: brak wymuszenia ograniczenia ConfirmBeforeUse w NewKeyring()

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

Podatność w bibliotece Golang Crypto powoduje, że in-memory keyring zwracany przez NewKeyring() akceptował klucze z ograniczeniem ConfirmBeforeUse, lecz nigdy go nie egzekwował. Klucze podpisywały dane bez jakiegokolwiek monitu potwierdzającego, a wywołujący kod nie otrzymywał żadnej informacji o tym, że ograniczenie nie jest w rzeczywistości stosowane.

Pokaż oryginał (EN)

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

🤖 Analiza AI
Jak działa

Funkcja NewKeyring() tworzy in-memory keyring, który powinien wymuszać ograniczenie ConfirmBeforeUse — wymagające jawnego potwierdzenia przed użyciem klucza do podpisywania. W podatnej wersji ograniczenie to było cicho ignorowane: keyring przyjmował klucze z tym ograniczeniem bez zgłaszania błędu, a następnie wykonywał operacje podpisywania bez żadnego monitu. Wywołujący kod nie miał możliwości wykrycia tego braku egzekucji, ponieważ nie był zwracany żaden błąd ani ostrzeżenie. Po zastosowaniu poprawki NewKeyring() zwraca błąd, gdy przekazywane są nieobsługiwane ograniczenia.

Skutki

Atakujący lub złośliwy kod mogący uzyskać dostęp do keyringa może skłonić go do podpisywania danych lub operacji bez wymaganego potwierdzenia użytkownika, omijając kontrolę dostępu przewidzianą przez ograniczenie ConfirmBeforeUse. Może to prowadzić do nieautoryzowanego użycia kluczy kryptograficznych oraz naruszenia integralności i poufności chronionych zasobów.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami (m.in. https://go.dev/cl/778640 i https://go.dev/cl/778641). Zaleca się aktualizację biblioteki golang.org/x/crypto do wersji zawierającej poprawkę opisaną w GO-2026-5005.

Kogo dotyczy

Biblioteka Golang Crypto — wersje wskazane w referencjach producenta (golang.org/x/crypto); podatność dotyczy aplikacji korzystających z NewKeyring() z ograniczeniem ConfirmBeforeUse.

Uwagi

Podatność jest klasyfikowana jako CWE-862 (Missing Authorization). Szczegóły techniczne oraz poprawki dostępne są w systemie śledzenia błędów Go pod numerem issue #79436 oraz ogłoszeniu w grupie golang-announce.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • 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-39834CRITICAL9.1PL ✓ten sam produkt

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

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