一、漏洞详情
PostgreSQL JDBC Driver(简称 PGJDBC)是一个用 Pure Java(Type 4)编写的开源JDBC驱动程序,允许Java 程序使用标准的、独立于数据库的Java代码连接到 PostgreSQL 数据库。
PGJDBC被披露存在一个SQL注入漏洞(CVE-2022-31197)。由于java.sql.ResultRow.refreshRow()方法的PGJDBC实现没有对列名进行转义,因此当恶意列名中包含语句终止符,如“;”时在某些情况下可能导致SQL注入,成功利用此漏洞将能够以应用程序的JDBC用户身份执行SQL 命令。
建议受影响用户做好资产自查以及预防工作,以免遭受黑客攻击。
二、影响范围
PostgreSQL JDBC Driver < 42.2.26
42.3.0 <= PostgreSQL JDBC Driver < 42.4.1
注:不调用ResultSet.refreshRow()方法的用户应用程序不受影响。
三、修复建议
目前此漏洞已经修复,受影响用户可升级到PostgreSQL JDBC Driver 版本42.2.26、42.4.1或更高版本。
下载链接:https://jdbc.postgresql.org/download.html