Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOpen authenticated GSS-encrypted connection (gssEncMode=prefer/require)
-
ExploitWrite ≥16320-byte value via setString/setBytes/LargeObject.write
-
ExecutionDriver sends stale GSS buffer instead of supplied bytes
-
ImpactServer stores leaked prior SQL/parameters/rows as the value
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Outbound data filtering
|
| Exploitation Conditions | Requires a non-default configuration: gssEncMode must be set to prefer or require so that GSS/Kerberos encryption is actually negotiated - the default gssEncMode=allow does not start GSS encryption and is NOT affected, nor are any non-GSS-encrypted connections. The application must also write a value at least as long as the GSS send buffer (16320 bytes with MIT Kerberos) from a byte array via setString, setBytes, a ByteStreamWriter, CopyIn.writeToCopy, or LargeObject.write. Limiting factors that reduce realistic risk: only versions 42.7.4 and 42.7.5 are affected (fixed in 42.7.6); an authenticated database connection is required (PR:L); most qualifying writes fail outright with an ArrayIndexOutOfBoundsException rather than silently leaking; and the leaked bytes come from earlier messages on the same connection, keeping exposure within that connection's own traffic. |
| Impact | This is a genuine but low-priority defect rather than a high-urgency threat. The provided CVSS 3.1 base score is 4.2 (Medium) with vector AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N, and the signals are internally consistent: network vector but high attack complexity (AC:H) because exploitation requires a non-default GSS encryption mode plus a write of at least the ~16320-byte buffer size, and PR:L because a valid authenticated database connection is needed. Exploitation status: no public exploit identified at time of analysis - there is no CISA KEV listing and no POC referenced. No EPSS score was supplied in the input, so exploitation probability cannot be quantified here; absence of EPSS/KEV/POC should not be read as proof of safety, only as lack of evidence. A key mitigating reality stated in the description itself is that most affected writes abort with an ArrayIndexOutOfBoundsException instead of silently leaking, further lowering real-world impact. The confidentiality exposure (CWE-201) is bounded to fragments of the SAME connection's own earlier traffic (prior SQL text, parameters, earlier batch rows) being stored server-side, so turning it into a cross-trust-boundary disclosure requires an actor who can both trigger the oversized write and later read the stored value. Net: real enough to patch, especially where gssEncMode=prefer/require is in use, but not an emergency given AC:H, PR:L, non-default configuration, and lack of any exploitation evidence. |
| Exploit ScenarioDerived | An application running pgjdbc 42.7.4 or 42.7.5 with gssEncMode=prefer or require writes a bind parameter or large object of at least ~16320 bytes (the MIT Kerberos GSS send-buffer size); instead of the supplied bytes, the driver emits the stale contents of the GSS send buffer, so the server silently persists fragments of that connection's earlier SQL text, parameters, or batched rows. A user able to later read that stored column could recover sensitive data belonging to prior operations on the same connection. No public exploit code exists, and most such oversized writes actually fail with an ArrayIndexOutOfBoundsException rather than leaking. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Values written through the PostgreSQL JDBC Driver (pgjdbc) 42.7.4 and 42.7.5 over a GSS/Kerberos-encrypted connection can be silently stored by the server with bytes from the driver's previous GSS send buffer spliced into the front of them, so the persisted value holds earlier SQL text, other bind parameters, or earlier rows of the same batch instead of what the application supplied. Only connections where gssEncMode is set to prefer or require are affected - the default gssEncMode=allow and all non-GSS-encrypted connections are not - and the write must be at least as long as the driver's 16320-byte GSS buffer (with MIT Kerberos) and issued via setString, setBytes, a ByteStreamWriter, CopyIn.writeToCopy, or LargeObject.write. The CVSS vector (PR:L) indicates an authenticated database session is required, most qualifying writes fail outright with an ArrayIndexOutOfBoundsException rather than leaking, no public exploit is identified at time of analysis, and the upstream project rates this as a genuine but low-priority defect (CVSS 4.2) rather than a high-urgency threat.
RemediationAI
Upgrade to the vendor-released fix, pgjdbc 42.7.6 or later (advisory: https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-hggc-j2qh-988m; fix: PR https://github.com/pgjdbc/pgjdbc/pull/3500, commit https://github.com/pgjdbc/pgjdbc/commit/96f6862bb6bcadde7620688c7bce73f2d01a7ebb) - this is the only complete remediation, since the defect is in the driver's write path and cannot be corrected server-side. If an immediate upgrade is not possible, change the JDBC URL to gssEncMode=allow (the documented default) or an equivalent setting that prevents GSS encryption from being selected, and compensate for the loss of Kerberos-encrypted transport by enabling TLS on the same connection with sslmode=verify-full and a trusted root certificate; the trade-off is that TLS replaces, rather than supplements, GSS channel encryption and may not satisfy environments that mandate Kerberos-based transport. As an additional containment measure, avoid writing single values of 16320 bytes or more from Java byte arrays (setString, setBytes, ByteStreamWriter, CopyIn.writeToCopy, LargeObject.write) while GSS encryption is active, and review application logs for ArrayIndexOutOfBoundsException during qualifying writes, since most of these writes fail loudly rather than silently corrupting data - meaning any successful large write over GSS should be treated as potentially containing stale bytes from a prior message on the same connection and re-validated or re-inserted after patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pgjdbc's GSS-encrypted transport is implemented in org.postgresql.gss.GSSInputStream, which reads length-prefixed frames from the socket, unwraps them through the JGSS GSSContext.unwrap() call, and buffers the decrypted bytes for the caller. Every message is preceded by a four-byte big-endian length (parsed with ByteConverter.int4), and the server emits frames of at most 16 KiB. In 42.7.4 and 42.7.5 the driver's send-side byte-array write path could hand the GSS wrapper a buffer whose leading 16320 bytes still contained the driver's previous outbound messages on that connection, and because the server accepted the resulting message without error, the stale prefix was written to the database as part of the value. The root cause class is CWE-201 (Insertion of Sensitive Information Into Sent Data): data from one logical message is inserted into another before transmission, producing a within-connection information-disclosure and data-integrity defect rather than a memory-safety issue. Upstream remediation (PR 3500, commit 96f6862bb6bcadde7620688c7bce73f2d01a7ebb) restructures GSSInputStream to track length, encrypted, and unencrypted positions independently, reallocates the encrypted buffer when a frame exceeds 16 KiB, and avoids retaining decrypted state across read() calls.
Know when Pgjdbc gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
Needs an authenticated GSS-encrypted connection and a ≥16KB byte-array write (PR:L, AC:H, non-default config); leaks and corrupts stored message fragments (C:L/I:L), with no availability impact.
Primary rating from Vendor (PostgreSQL).
CVSS VectorVendor: PostgreSQL
DescriptionCVE.org
pgjdbc, the PostgreSQL JDBC Driver, versions 42.7.4 and 42.7.5 can send the previous contents of the GSS send buffer in place of the first part of a value on a connection with GSS encryption (gssEncMode=prefer or require), and the server stores the value without an error. The buffer is 16320 bytes with MIT Kerberos. The stored value then holds bytes of the messages the driver sent just before it on the same connection, such as the statement's SQL text, its other parameters, and earlier rows of the same batch, instead of the bytes the application supplied. Values at least as long as the buffer are affected when the driver writes them from a byte array: bind parameters set with setString, setBytes, or a ByteStreamWriter, CopyIn.writeToCopy, and LargeObject.write. Most such writes fail with an ArrayIndexOutOfBoundsException instead. The default, gssEncMode=allow, does not start GSS encryption, and connections without GSS encryption are not affected. Versions 42.7.3 and earlier are not affected, and 42.7.6 fixes the problem.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Channel-binding downgrade in the pgjdbc PostgreSQL JDBC Driver (releases 42.7.4 through 42.7.11) lets an active man-in-t
Residual-data disclosure in the PostgreSQL JDBC Driver (pgjdbc) 42.7.4 through 42.7.13 allows an authenticated attacker
EUVD-2026-94546
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB