Bug 2129428 (CVE-2022-31197)

Summary: CVE-2022-31197 postgresql: SQL Injection in ResultSet.refreshRow() with malicious column names
Product: [Other] Security Response Reporter: Patrick Del Bello <pdelbell>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: aileenc, alazarot, anstephe, avibelli, balejosg, bgeorges, boliveir, caolanm, caswilli, chazlett, clement.escoffier, dandread, databases-maint, dkreling, emingora, eric.wittmann, etirelli, fjanus, fmongiar, ggastald, gmalinko, gsmet, hamadhan, hhorak, ibek, janstey, jjanco, jnethert, jochrist, jpavlik, jrokos, jwon, kaycoth, kverlaen, lthon, mkulik, mnovotny, odubaj, pantinor, pdelbell, pdrozd, peholase, pgallagh, pjindal, pkubat, praiskup, probinso, pskopek, rguimara, rrajasek, rruss, rsvoboda, sbiarozk, sdouglas, sthorger, tgl, tzimanyi, zmiklank
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: postgresql-jdbc 42.2.26, postgresql-jdbc 42.3.7, postgresql-jdbc 42.4.1 Doc Type: If docs needed, set a value
Doc Text:
A flaw was found in PostgresQL. This flaw allows an attacker to benefit from a miss escaping character and leads to a SQL injection attack due to Java.sql.ResultRow.refreshRow() implementation from PGSQL.
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-01-25 11:52:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2129429, 2132869, 2132870, 2132871, 2151113    
Bug Blocks: 2115177    

Description Patrick Del Bello 2022-09-23 18:13:59 UTC
PostgreSQL JDBC Driver (PgJDBC for short) allows Java programs to connect to a PostgreSQL database using standard, database independent Java code. The PGJDBC implementation of the `java.sql.ResultRow.refreshRow()` method is not performing escaping of column names so a malicious column name that contains a statement terminator, e.g. `;`, could lead to SQL injection. This could lead to executing additional SQL commands as the application's JDBC user. User applications that do not invoke the `ResultSet.refreshRow()` method are not impacted. User application that do invoke that method are impacted if the underlying database that they are querying via their JDBC application may be under the control of an attacker. The attack requires the attacker to trick the user into executing SQL against a table name who's column names would contain the malicious SQL and subsequently invoke the `refreshRow()` method on the ResultSet. Note that the application's JDBC user and the schema owner need not be the same. A JDBC application that executes as a privileged user querying database schemas owned by potentially malicious less-privileged users would be vulnerable. In that situation it may be possible for the malicious user to craft a schema that causes the application to execute commands as the privileged user. Patched versions will be released as `42.2.26` and `42.4.1`. Users are advised to upgrade. There are no known workarounds for this issue.

https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-r38f-c4h4-hqq2

Comment 1 Patrick Del Bello 2022-09-23 18:14:21 UTC
Created postgresql-jdbc tracking bugs for this issue:

Affects: fedora-all [bug 2129429]

Comment 6 Fedora Update System 2022-10-05 01:03:55 UTC
FEDORA-2022-cdeabe1bc0 has been pushed to the Fedora 35 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 13 errata-xmlrpc 2022-11-28 14:40:09 UTC
This issue has been addressed in the following products:

  Red Hat Fuse 7.11.1

Via RHSA-2022:8652 https://access.redhat.com/errata/RHSA-2022:8652

Comment 14 errata-xmlrpc 2022-12-14 13:15:13 UTC
This issue has been addressed in the following products:

  Red Hat build of Quarkus 2.13.5

Via RHSA-2022:9023 https://access.redhat.com/errata/RHSA-2022:9023

Comment 16 errata-xmlrpc 2023-01-23 15:18:45 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2023:0318 https://access.redhat.com/errata/RHSA-2023:0318

Comment 17 Product Security DevOps Team 2023-01-25 11:52:21 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2022-31197

Comment 18 errata-xmlrpc 2023-03-08 14:54:59 UTC
This issue has been addressed in the following products:

  Red Hat build of Quarkus 2.7.7

Via RHSA-2023:1006 https://access.redhat.com/errata/RHSA-2023:1006