Podatność w bibliotece Golang Crypto powoduje, że unieważniony klucz podpisu (SignatureKey) należący do urzędu certyfikacji (CA) nie był poprawnie sprawdzany pod kątem unieważnienia. Jest to poważna luka, ponieważ może pozwolić na akceptację certyfikatów lub podpisów opartych na kluczach, które powinny być odrzucone.
▸ Pokaż oryginał (EN)
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked.
Podczas weryfikacji certyfikatów lub podpisów biblioteka sprawdzała jedynie bezpośredni klucz (key), pomijając weryfikację unieważnienia powiązanego klucza podpisu CA (key.SignatureKey). Atakujący dysponujący dostępem do unieważnionego klucza SignatureKey CA mógł wygenerować podpisy lub certyfikaty, które były błędnie uznawane za ważne. Po poprawce obydwa pola — key oraz key.SignatureKey — są weryfikowane pod kątem obecności na liście unieważnionych elementów.
Atakujący może obejść mechanizmy weryfikacji unieważnienia certyfikatów lub kluczy CA, co prowadzi do nieautoryzowanego dostępu do chronionych zasobów lub naruszenia integralności podpisów cyfrowych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://go.dev/cl/781220, https://go.dev/issue/79568, https://pkg.go.dev/vuln/GO-2026-5021).
Aplikacje wykorzystujące bibliotekę Golang Crypto — wersje wskazane w referencjach producenta.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NGolang Crypto
APPGolang< 0.52.0
Powiązane podatności
Golang Crypto: pominięcie ograniczeń przy przekazywaniu kluczy do zdalnego agenta SSH
Golang Crypto: brak wymuszenia ograniczenia ConfirmBeforeUse w NewKeyring()
Brak weryfikacji flagi User Presence w FIDO/U2F w Golang Crypto
Golang Crypto: resource leak przez niezamawiane odpowiedzi SSH global request
Integer overflow w Golang Crypto SSH — nieskończona pętla przy zapisie >4GB