Skip to main content

PostgreSQL CVE-2025-1094

HIGH
Improper Neutralization of Quoting Syntax (CWE-149)
2025-02-13 f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
8.1
CVSS 3.1
Share

CVSS VectorNVD

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Patch released
Apr 04, 2026 - 20:30 nvd
Patch available
Analysis Generated
Mar 28, 2026 - 18:26 vuln.today
PoC Detected
Feb 21, 2025 - 18:15 vuln.today
Public exploit code
CVE Published
Feb 13, 2025 - 13:15 nvd
HIGH 8.1

DescriptionNVD

Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.

AnalysisAI

PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperly neutralize quoting syntax, enabling SQL injection when function results are used to construct psql input. This vulnerability was used as the initial access vector in the BeyondTrust RS compromise chain.

Technical ContextAI

The libpq escape functions are designed to safely quote strings for SQL statements. However, they fail to properly handle certain quoting syntax patterns, allowing an attacker who controls a database input value to inject SQL when the escaped output is used to construct commands for the psql client. This is particularly dangerous in applications that pipe escaped values into psql for execution.

Affected ProductsAI

PostgreSQL libpq (all versions before patch) Applications using PQescapeLiteral/PQescapeIdentifier/PQescapeString/PQescapeStringConn with psql

RemediationAI

Update PostgreSQL to the latest patched version. Audit applications for patterns where libpq escape function outputs are passed to psql. Use parameterized queries instead of string escaping where possible. Review the BeyondTrust advisory chain for indicators of compromise.

Vendor StatusVendor

Share

CVE-2025-1094 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy