#VU66747 SQL injection in Postgresql JDBC Driver


Vulnerability identifier: #VU66747

Vulnerability risk: High

CVSSv3.1: 7.9 [CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N/E:U/RL:O/RC:C]

CVE-ID: CVE-2022-31197

CWE-ID: CWE-89

Exploitation vector: Network

Exploit availability: No

Vulnerable software:
Postgresql JDBC Driver
Universal components / Libraries / Libraries used by multiple products

Vendor: PostgreSQL Global Development Group

Description

The vulnerability allows a remote attacker to execute arbitrary SQL queries in database.

The vulnerability exists due to insufficient sanitization of user-supplied data within the java.sql.ResultRow.refreshRow() method when processing column names. A remote attacker can send a specially crafted request to the affected application and execute arbitrary SQL commands within the application database using the statement terminator, e.g." ;".

Successful exploitation of this vulnerability may allow a remote attacker to read, delete, modify data in database and gain complete control over the affected application.

Mitigation
Install update from vendor's website.

Vulnerable software versions

Postgresql JDBC Driver: 42.2.0 - 42.2.25, 42.4.0, 42.3.0 - 42.3.6


External links
http://github.com/pgjdbc/pgjdbc/commit/739e599d52ad80f8dcd6efedc6157859b1a9d637
http://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-r38f-c4h4-hqq2


Q & A

Can this vulnerability be exploited remotely?

Yes. This vulnerability can be exploited by a remote non-authenticated attacker via the Internet.

Is there known malware, which exploits this vulnerability?

No. We are not aware of malware exploiting this vulnerability.


Latest bulletins with this vulnerability