Critical severity · published Feb 19, 2024
CVE-2024-1597
pgjdbc SQL Injection via line comment generation
9.8
CVSS
4.8%
EPSS
No
On KEV
Description
pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using PreferQueryMode=SIMPLE. Note this is not the default. In the default mode there is no vulnerability. A placeholder for a numeric value must be immediately preceded by a minus. There must be a second placeholder for a string value after the first placeholder; both must be on the same line. By constructing a matching string payload, the attacker can inject SQL to alter the query,bypassing the protections that parameterized queries bring against SQL Injection attacks. Versions before 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.28 are affected.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)4.8% · higher than 92% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PG
pgjdbc · pgjdbc
< 42.7.2; < 42.6.1; < 42.5.5; < 42.4.4; < 42.3.9; < 42.2.28 · source: vendor, CISA
FE
Fedora · Fedoraproject
40 · source: NVD
PJ
Postgresql Jdbc Driver · Postgresql
before 42.2.28; 42.3.0 before 42.3.9; 42.4.0 before 42.4.4; 42.5.0 before 42.5.5; 42.6.0 before 42.6.1; 42.7.0 before 42.7.2 · source: NVD
Affected product
PG
pgjdbc
pgjdbc
More from pgjdbc
8.0
CVE-2022-31197
SQL Injection in ResultSet.refreshRow() with malicious column names in pgjdbc
7.5
CVE-2026-42198
pgjdbc: Unbounded PBKDF2 iterations in SCRAM authentication allows CPU exhaustion DoS
5.9
CVE-2026-107314
pgjdbc does not enforce requireAuth when the value excludes every authentication method
5.9
CVE-2026-54291
Silent channel-binding authentication downgrade via unsupported certificate algorithms
5.9
CVE-2025-49146
pgjdbc Client Allows Fallback to Insecure Authentication Despite channelBinding=require Configuration