HIGH🇬🇧 English

CVE-2026-53712

Cicha degradacja SCRAM do wariantu bez channel binding w bibliotece scram-client

CVSS 8.2v4.0pub. 2026-07-17

Podatność w bibliotece Java com.ongres.scram (wersje przed 3.3) umożliwia atakującemu przeprowadzającemu atak TLS man-in-the-middle ciche obniżenie poziomu uwierzytelniania z SCRAM-SHA-256-PLUS (z channel binding) do SCRAM-SHA-256 (bez channel binding). Jest to groźne, ponieważ eliminuje ochronę przed przechwyceniem sesji uwierzytelnienia bez wiedzy klienta ani serwera.

Pokaż oryginał (EN)

SCRAM (Salted Challenge Response Authentication Mechanism) is part of the family of Simple Authentication and Security Layer (SASL, RFC 4422) authentication mechanisms. Prior to 3.3, a flaw in com.ongres.scram:scram-client and com.ongres.scram:scram-common allows an attacker capable of a TLS man-in-the-middle attack to silently downgrade a connection from SCRAM-SHA-256-PLUS with channel binding to standard SCRAM-SHA-256 without channel binding when TlsServerEndpoint processes an X.509 certificate using a modern signature algorithm such as Ed25519; getChannelBindingData() can return an empty byte array after NoSuchAlgorithmException, and the ScramClient builder treats that as absent channel-binding data. This issue is fixed in version 3.3.

🤖 Analiza AI
Jak działa

Gdy metoda TlsServerEndpoint przetwarza certyfikat X.509 podpisany nowoczesnym algorytmem, takim jak Ed25519, może zostać zgłoszony wyjątek NoSuchAlgorithmException. W wyniku jego obsługi metoda getChannelBindingData() zwraca pustą tablicę bajtów zamiast sygnalizować błąd. Builder klasy ScramClient interpretuje pustą tablicę jako brak danych channel binding i bez ostrzeżenia przełącza się na mechanizm SCRAM-SHA-256 pozbawiony wiązania kanału. Atakujący z pozycją man-in-the-middle może tym samym wymusić użycie słabszego wariantu uwierzytelniania (CWE-636: Not Failing Securely, CWE-757: Selection of Less-Secure Algorithm During Negotiation).

Skutki

Atakujący może przełamać ochronę zapewnianą przez channel binding i przeprowadzić skuteczny atak man-in-the-middle na sesję uwierzytelniania, potencjalnie modyfikując dane przesyłane do serwera lub przejmując kontrolę nad procesem uwierzytelnienia bez wykrycia przez ofiarę.

Mitygacja

Należy zaktualizować bibliotekę do wersji 3.3, w której problem został naprawiony. Szczegóły dostępne w referencjach producenta: https://github.com/ongres/scram/releases/tag/3.3

Kogo dotyczy

Biblioteki com.ongres.scram:scram-client oraz com.ongres.scram:scram-common w wersjach wcześniejszych niż 3.3

Uwagi

Podatność dotyczy wyłącznie scenariuszy, w których certyfikat TLS serwera używa nowoczesnych algorytmów podpisu nieobsługiwanych przez standardowy dostawca JCA (np. Ed25519). Środowiska korzystające z certyfikatów RSA lub ECDSA mogą nie być bezpośrednio narażone na ten konkretny wektor.

CVSS Vector
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje