Bug 2129428 (CVE-2022-31197) - CVE-2022-31197 postgresql: SQL Injection in ResultSet.refreshRow() with malicious column names
Summary: CVE-2022-31197 postgresql: SQL Injection in ResultSet.refreshRow() with malic...
Alias: CVE-2022-31197
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On: 2129429 2132869 2132870 2132871 2151113
Blocks: 2115177
TreeView+ depends on / blocked
Reported: 2022-09-23 18:13 UTC by Patrick Del Bello
Modified: 2023-03-08 14:55 UTC (History)
58 users (show)

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.
Clone Of:
Last Closed: 2023-01-25 11:52:25 UTC

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2022:8652 0 None None None 2022-11-28 14:40:12 UTC
Red Hat Product Errata RHSA-2022:9023 0 None None None 2022-12-14 13:15:15 UTC
Red Hat Product Errata RHSA-2023:0318 0 None None None 2023-01-23 15:18:49 UTC
Red Hat Product Errata RHSA-2023:1006 0 None None None 2023-03-08 14:55:01 UTC

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.


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):


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

Note You need to log in before you can comment on or make changes to this bug.