PostgreSQL pg_dump对象名称中有换行符时可导致psql客户端及恢复目标服务器执行任意恶意代码HGVE-2025-E008

文章目录

环境

系统平台:N/A

版本:9.0.3,9.0.4

BUG/漏洞编码

HGVE-2025-E008

症状

PostgreSQL中的pg_dump、pg_dumpall工具对换行符的处理不当,使得原始服务器上的用户能够通过在精心构造的对象名称中插入psql元命令,将任意代码注入到由用于恢复转储文件的客户端操作系统账户(运行 psql)执行的恢复过程中。同样的攻击手段还可导致在目标恢复服务器上以超级用户身份进行 SQL 注入。pg_dumpall、pg_restore 和 pg_upgrade 也受到此问题影响。受影响的版本包括 PostgreSQL 17.6、16.10、15.14、14.19 和 13.22 之前的版本。11.20 之前的版本不受影响。此类问题曾由 CVE-2012-0868 修复,但在版本 11.20 中被重新引入。

触发条件

对象命中存在换行符的情况下,pg_dump导出生成注释时,会将换行符后的内容转到下一行,导致部分内容从注释中逃逸。使用psql恢复时,会错误地执行逃逸部分的注释内容。

解决方案

整体修复方案:pg_dump导出时,在生成对象注释时,将换行符(\n)替换为空格,保证对象名中的字符串不会从注释中逃逸。

补丁下载地址: 链接: https://pan.baidu.com/s/1W2DORVFhZAGs_31-dLJN1w?pwd=86q6 提取码: 86q6

相关推荐
m0_470857641 分钟前
c++怎么利用C++17的filesystem--copy实现高效文件夹克隆【详解】
jvm·数据库·python
duke8692672142 分钟前
HTML怎么区分正文与广告_HTML aside与广告位语义【技巧】
jvm·数据库·python
@北海怪兽8 分钟前
SQL常见函数整理 _ STRING_AGG()
android·数据库·sql
环流_12 分钟前
Redis过期策略
数据库·redis·缓存
北秋,12 分钟前
Web Security Academy 第四关:SQL 注入查询 MySQL / SQL Server 版本
数据库·sql·mysql
2401_8246976621 分钟前
如何实现SQL存储过程状态监控_编写实时运行监控仪表盘
jvm·数据库·python
Mike117.24 分钟前
GBase 8c MOT 内存表落地前要先画清楚边界
服务器·数据库
iAm_Ike24 分钟前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
夏日听雨眠25 分钟前
Linux(信号,管道,共享内存)
java·服务器·网络
dFObBIMmai26 分钟前
mysql如何确保主从数据完全同步_开启半同步复制机制
jvm·数据库·python