Alta

PostgreSQL JDBC Driver: Silent channel-binding authentication downgrade via unsupported certificate algorithms

  • Publicada: 21.07.2026
  • Actualizado: 11.10.2026 13:20

Impact

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 triggers the downgrade with a certificate whose signature algorithm has no tls-server-end-point channel-binding hash. Examples are Ed25519, Ed448, and post-quantum algorithms.

Two issues combine in releases 42.7.4 through 42.7.11:

  1. The bundled com.ongres.scram:scram-client (3.1 or 3.2) returns an empty byte array instead of failing when it cannot derive the binding hash for such a certificate. This is the library issue tracked as GHSA-p9jg-fcr6-3mhf.
  2. pgJDBC does not enforce channelBinding=require where it matters. ScramAuthenticator checks only that the server advertised a -PLUS mechanism; it neither rejects the empty binding nor checks that the negotiated mechanism uses channel binding. The connection therefore downgrades silently, and would do so even against a fixed scram-client, because the missing enforcement is in pgJDBC's own code.

Only connections that set channelBinding=require are affected. Under the default prefer policy, and under allow or disable, falling back to plain SCRAM is the documented behaviour. Releases before 42.7.4 are unaffected, because they do not support channel binding.

Patches

Fixed in pgJDBC 42.7.12. pgJDBC now enforces channel binding in its own code, independently of the scram-client version:

  • Under channelBinding=require, it fails the connection when no channel-binding data can be extracted from the server certificate, instead of passing an empty value to the SCRAM client. The error names the certificate signature algorithm.
  • After negotiation, it requires the selected mechanism to use channel binding (a -PLUS mechanism) whenever channelBinding=require is set, regardless of how negotiation resolved.

Upgrade to 42.7.12 or later.

Workarounds

No pgJDBC setting restores channel-binding enforcement on an affected release; upgrading is the fix.

If you cannot upgrade immediately, verify the server certificate at the TLS layer so that a man-in-the-middle cannot present a substitute certificate. Set sslmode=verify-full with a truststore that contains only your server's CA. This defence is independent of channel binding and blocks the same attacker. Connections that rely on channelBinding=require in place of certificate verification have no equivalent workaround and should upgrade.

References

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Java / Kotlin (Maven) org.postgresql:postgresql >= 42.7.4, < 42.7.12 42.7.12

Referencias

Puntuación CVSS -
Vector CVSS
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
Debilidad (CWE)
CWE-636, CWE-757
Plataforma
Java / Kotlin (Maven)
Paquete
org.postgresql:postgresql
Publicada
21.07.2026
Actualizado
11.10.2026 13:20

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-j92g-9f8w-j867 - CC BY 4.0

Historial de vulnerabilidades: org.postgresql:postgresql

Todas las vulnerabilidades publicadas de este paquete (Java / Kotlin (Maven)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (10) en el archivo
Entradas en total
10
Primera → última
02.2022 07.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 1
  • Alta 7
  • Media 2

Divulgaciones por año

  1. 2022: 6
  2. 2023: 0
  3. 2024: 1
  4. 2025: 1
  5. 2026: 2
Gravedad:
  1. PostgreSQL JDBC Driver: Silent channel-binding authentication downgrade via unsupported certificate algorithms esta entrada
    Alta CVE-2026-54291 >= 42.7.4, < 42.7.12 42.7.12
  2. Alta · 7.5 CVE-2026-42198 >= 42.2.0, < 42.7.11 42.7.11
  3. Crítica · 10.0 CVE-2024-1597 < 42.2.28, >= 42.3.0, < 42.3.9, >= 42.4.0, < 42.4.4, >= 42.5.0, < 42.5.5, >= 42.6.0, < 42.6.1, >= 42.7.0, < 42.7.2 42.2.28, 42.3.9, 42.4.4, 42.5.5, 42.6.1, 42.7.2
  4. Alta · 7.1 CVE-2022-31197 < 42.2.26, >= 42.4.0, < 42.4.1, >= 42.3.0, < 42.3.7 42.2.26, 42.4.1, 42.3.7
  5. Alta · 7.7 CVE-2020-13692 >= 9.4.1212.jre6, < 42.2.13 42.2.13
  6. Alta · 7.0 CVE-2022-21724 >= 9.4.1208, < 42.2.25, >= 42.3.0, < 42.3.2 42.2.25, 42.3.2

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.