HIGH🇬🇧 English

CVE-2026-54291

Cicha degradacja channel binding w PostgreSQL JDBC Driver (pgjdbc)

CVSS 8.2v4.0pub. 2026-07-06upd. 2026-07-09

Podatność w sterowniku pgjdbc umożliwia ciche obniżenie poziomu uwierzytelnienia z SCRAM-SHA-256-PLUS (z channel binding) do zwykłego SCRAM-SHA-256, mimo że połączenie jest skonfigurowane z opcją channelBinding=require. Atakujący zdolny do przechwycenia połączenia TLS może w ten sposób pozbawić je ochrony przed atakami man-in-the-middle.

Pokaż oryginał (EN)

pgjdbc is an open source postgresql JDBC Driver. In releases 42.7.4 through 42.7.11, channelBinding=require connections can be silently downgraded from SCRAM-SHA-256-PLUS with channel binding to plain SCRAM-SHA-256 without it, losing the man-in-the-middle protection the setting is meant to guarantee. An attacker who can intercept the TLS connection can trigger the downgrade with a certificate whose signature algorithm has no tls-server-end-point channel-binding hash, because the bundled com.ongres.scram:scram-client returns an empty byte array instead of failing and pgJDBC ScramAuthenticator checks only that the server advertised a PLUS mechanism, without rejecting the empty binding or checking that the negotiated mechanism uses channel binding. This issue is fixed in version 42.7.12.

🤖 Analiza AI
Jak działa

Gdy serwer prezentuje certyfikat TLS oparty na algorytmie podpisu nieobsługującym skrótu tls-server-end-point channel-binding, biblioteka com.ongres.scram:scram-client zwraca pustą tablicę bajtów zamiast zgłosić błąd. Komponent ScramAuthenticator w pgjdbc sprawdza jedynie, czy serwer zadeklarował obsługę mechanizmu PLUS, lecz nie weryfikuje, czy puste binding jest akceptowalne ani czy faktycznie negocjowany mechanizm korzysta z channel binding. W efekcie połączenie przechodzi na SCRAM-SHA-256 bez channel binding, mimo jawnego żądania jego wymuszenia przez klienta.

Skutki

Atakujący z możliwością przeprowadzenia ataku man-in-the-middle na połączenie TLS może zainicjować degradację mechanizmu uwierzytelnienia, co umożliwia podszywanie się pod serwer bazy danych oraz potencjalną manipulację danymi przesyłanymi w sesji.

Mitygacja

Należy zaktualizować pgjdbc do wersji 42.7.12, w której problem został naprawiony. Dostępna jest również aktualizacja biblioteki com.ongres.scram:scram-client do wersji 3.3.

Kogo dotyczy

PostgreSQL JDBC Driver (pgjdbc) w wersjach od 42.7.4 do 42.7.11 włącznie, przy połączeniach skonfigurowanych z opcją channelBinding=require.

Uwagi

Podatność wymaga spełnienia dodatkowych warunków: atakujący musi być zdolny do przechwycenia połączenia TLS (atak man-in-the-middle), a serwer musi posługiwać się certyfikatem opartym na algorytmie podpisu bez obsługi skrótu tls-server-end-point channel-binding.

CVSS Vector
CVSS:4.0/AV:N/AC:H/AT:P/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
  • PostgreSQL Jdbc Driver

    APP
    Postgresql
    42.7.4 – 42.7.12 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2024-1597CRITICAL10.0PL ✓ten sam produkt

SQL Injection w PostgreSQL JDBC Driver (pgjdbc) — tryb SIMPLE

CVE-2022-26520CRITICAL9.8PL ✓ten sam produkt

Zapis do dowolnych plików przez pgjdbc via loggerFile (przed 42.3.3)

CVE-2026-42198HIGH7.5ten sam produkt

pgjdbc is an open source postgresql JDBC Driver. From version 42.2.0 to before version 42.7.11, pgjdbc is vuln...

CVE-2025-49146HIGH8.2ten sam produkt

pgjdbc is an open source postgresql JDBC Driver. From 42.7.4 and until 42.7.7, when the PostgreSQL JDBC driver...

CVE-2022-31197HIGH7.1ten sam produkt

PostgreSQL JDBC Driver (PgJDBC for short) allows Java programs to connect to a PostgreSQL database using stand...