一、漏洞详情
PostgreSQL是一款功能强大、灵活可定制的开源关系型数据库管理系统(RDBMS),支持Windows、Linux、UNIX、Mac OSX、BSD等多种操作系统。
近日,监测到PostgreSQL发布安全公告,修复了PostgreSQL SQL注入漏洞(CVE-2025-1094),CVSS评分8.1;由于PostgreSQL的psql工具对无效UTF-8字符(例如 hax\xC0'; ! id#)的处理缺陷,导致SQL语句被意外分割,未经身份验证的攻击者可通过构造特制的输入实现SQL注入,从而利用PostgreSQL交互式终端psql来执行任意代码。目前漏洞细节与PoC已公开,且发现在野利用,请相关用户尽快采取措施进行防护。
二、影响范围
受影响版本
· 17 <= PostgreSQL < 17.3
· 16 <= PostgreSQL < 16.7
· 15 <= PostgreSQL < 15.11
· 14 <= PostgreSQL < 14.16
· 13 <= PostgreSQL < 13.19
不受影响版本
· PostgreSQL >= 17.3
· PostgreSQL >= 16.7
· PostgreSQL >= 15.11
· PostgreSQL >= 14.16
· PostgreSQL >= 13.19
三、漏洞检测
版本检测
相关用户可以通过下列命令查看当前使用的PostgreSQL版本是否在影响范围:
postgres --version
四、漏洞防护
官方升级
目前官方已发布新版本修复此漏洞,请受影响的用户尽快升级防护,下载链接:https://www.postgresql.org/download
临时防护措施
若相关用户暂时无法进行升级操作,可使用下列措施进行临时缓解:
1、验证UTF-8编码:在传递给psql之前清理包含无效UTF-8序列的输入;
2、避免动态SQL:使用参数化查询或ORM框架来最大限度地减少对原始输入的直接psql使用;
3、在不影响业务的情况下,将psql工具的访问权限进行白名单限制。