← Tornar als articles
Seguretat· 3 min de lectura

PostgreSQL JDBC: un servidor maliciós pot penjar el client via SCRAM (CVE-2026-42198)

Quan parlem de denegació de servei, normalment ens imaginem el servidor caient sota una allau de peticions. Aquí passa al revés: qui es penja és el client, i qui li fa mal és el mateix servidor PostgreSQL al qual intenta connectar-se. Red Hat ho ha corregit a RHEL 10 amb l’actualització RHSA-2026:24348, classificada com a Important.

Què falla exactament

El problema és a pgjdbc, el driver JDBC oficial de PostgreSQL, i té assignat CVE-2026-42198. El error apareix durant l’autenticació SCRAM-SHA-256, el mètode per defecte a les versions modernes de PostgreSQL.

SCRAM fa servir PBKDF2 per derivar la contrasenya, i el nombre d’iteracions d’aquesta funció el dicta el servidor dins de l’intercanvi d’autenticació. El driver l’acceptava sense cap límit superior. Un servidor controlat per un atacant pot anunciar un nombre d’iteracions enorme, i el client es posa a calcular PBKDF2 fins que aquest nombre s’esgota, abans fins i tot de poder rebutjar la connexió.

Una sola connexió així monopolitza un nucli de CPU al 100%. Si en llances unes quantes en paral·lel, esgotes els nuclis disponibles i deixes el pool de connexions inservible. El paràmetre loginTimeout no et salva: el fil de treball continua executant el càlcul de PBKDF2 encara que el timeout hagi vençut, així que la CPU continua ocupada.

L’identificador de debilitat és CWE-770 (assignació de recursos sense límit ni control). La puntuació és CVSS 7.5 (vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H): l’impacte és només de disponibilitat, sense compromís de confidencialitat ni integritat.

A qui afecta

A qualsevol aplicació Java que es connecti a PostgreSQL amb pgjdbc i faci servir SCRAM-SHA-256. Les versions vulnerables van de la 42.2.0 a la 42.7.10, corregides a la 42.7.11 upstream.

El matís important és el model d’amenaça. Perquè això t’afecti, el client s’ha de connectar a un servidor que un atacant controli o hagi compromès, o estar exposat a un servidor suplantat per un intermediari. No és un error que qualsevol exploti contra tu des de fora sense més; cal que dirigeixis el teu driver cap a un endpoint hostil. Tot i així, en entorns on les cadenes de connexió arriben des de configuració externa, multitenència o serveis de tercers, el risc és real.

Com protegir-te

A RHEL 10 n’hi ha prou amb aplicar l’actualització: Red Hat empaqueta la correcció a postgresql-jdbc 42.7.2-1.el10_2.2.

sudo dnf update postgresql-jdbc

Si gestiones la dependència directament al teu projecte Java (Maven, Gradle), puja el driver a la 42.7.11 o posterior. Reinicia les aplicacions perquè el canvi tingui efecte, ja que el driver es carrega a l’arrencada de la JVM.

Com a mesura de fons, revisa cap a on apunten les teves cadenes de connexió i desconfia dels servidors PostgreSQL que no controles. Mentre no puguis aplicar el pedaç, limitar la connectivitat de sortida a hosts de base de dades coneguts redueix l’exposició.

Si administres RHEL, aquest avís encaixa amb la resta del lot de seguretat de Red Hat de principis de juny; tens el context de la versió a la nostra fitxa de Red Hat Enterprise Linux 10.2.

Font