CRITICAL🇬🇧 English

CVE-2026-39831

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

CVSS 9.1pub. 2026-05-22upd. 2026-06-02

Metoda Verify() dla kluczy bezpieczeństwa FIDO/U2F w bibliotece Golang Crypto nie sprawdzała flagi User Presence, co oznacza, że podpisy wygenerowane bez fizycznego dotknięcia klucza były akceptowane jako prawidłowe. Umożliwia to zdalne wykorzystanie klucza sprzętowego bez fizycznej interakcji użytkownika, co całkowicie podważa założenia ochrony opartej na obecności człowieka.

Pokaż oryginał (EN)

The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.

🤖 Analiza AI
Jak działa

Klucze bezpieczeństwa FIDO/U2F (typy sk-ecdsa-sha2-nistp256@openssh.com oraz sk-ssh-ed25519@openssh.com) w ramach standardu wymagają fizycznego dotknięcia urządzenia przez użytkownika — fakt ten kodowany jest we fladze User Presence w strukturze podpisu. Metoda Verify() w bibliotece golang.org/x/crypto nie weryfikowała tej flagi, akceptując podpisy wygenerowane bez potwierdzenia fizycznej obecności. W efekcie atakujący posiadający dostęp do klucza prywatnego lub do urządzenia w trybie nieobsługiwanym (unattended) mógł uwierzytelnić się bez konieczności fizycznego dotknięcia tokena. Producent zaleca przywrócenie poprzedniego zachowania poprzez zwracanie rozszerzenia "no-touch-required" w polu Permissions.Extensions z funkcji PublicKeyCallback.

Skutki

Atakujący może przeprowadzić nieautoryzowane uwierzytelnienie SSH z użyciem klucza FIDO/U2F bez fizycznej interakcji z tokenem sprzętowym, co skutkuje nieuprawnionym dostępem do systemu oraz potencjalnym naruszeniem poufności i integralności danych.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://go.dev/cl/781662, https://pkg.go.dev/vuln/GO-2026-5019). Dodatkowo, w celu zachowania wymaganej weryfikacji fizycznej obecności użytkownika, należy skonfigurować PublicKeyCallback tak, aby zwracała rozszerzenie "no-touch-required" w polu Permissions.Extensions wyłącznie dla klientów, którym świadomie zezwala się na użycie klucza bez dotyku.

Kogo dotyczy

Biblioteka golang.org/x/crypto (Golang Crypto) — wersje wskazane w referencjach producenta; dotyczy implementacji obsługujących typy kluczy sk-ecdsa-sha2-nistp256@openssh.com oraz sk-ssh-ed25519@openssh.com

Uwagi

Podatność opublikowana 2026-05-22; identyfikator w bazie Go Vulnerability Database: GO-2026-5019. Zgłoszenie błędu dostępne pod adresem https://go.dev/issue/79566.

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-39833CRITICAL9.1PL ✓ten sam produkt

Golang Crypto: brak wymuszenia ograniczenia ConfirmBeforeUse w NewKeyring()

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

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

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

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

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