全球最受欢迎的开源 PostgreSQL 数据库管理工具pgAdmin中,被发现存在一处高危安全漏洞。该漏洞编号为CVE-2025-13780,CVSS 评分高达9.1 分(高危级别),攻击者可利用软件在处理文件编码时的一处细微疏漏,实现远程代码执行(RCE)。
此漏洞影响9.10 及以下版本且运行在服务器模式下的 pgAdmin。它会将常规的数据库恢复操作变为攻击武器,让攻击者得以在宿主服务器上执行任意指令,对数据库的完整性构成毁灭性风险。
该漏洞的危害性尤为突出,原因在于它绕过了此前针对 CVE-2025-12762 漏洞部署的安全修复补丁。
在之前的补丁中,pgAdmin 开发团队曾添加一个过滤机制,用于在 SQL 转储文件中的危险 “元命令” 被执行前,将其剔除。但安全研究人员发现,只需借助一段简单的字节序列,就能让这个过滤机制失效。
问题的核心在于,pgAdmin 的安全过滤器(具体为
has_meta_commands()函数)扫描文件的方式,与底层psql 工具执行文件的方式存在差异。过滤器会通过正则表达式扫描文件原始字节,排查
\!这类可执行 Shell 命令的危险元命令。但该正则表达式并未考虑特定的文件签名,例如UTF-8 字节顺序标记(BOM)—— 这是一段常被添加在文本文件开头、用于标识编码格式的字节序列(对应字节为EF BB BF)。以下是完整的攻击链路:
- 攻击者构造一个恶意的纯文本格式(PLAIN)SQL 转储文件,并在文件开头植入 UTF-8 BOM 字节序列。
- 当 pgAdmin 扫描该文件时,正则表达式会率先读取到 BOM 字节。由于过滤器无法识别这些字节为 “可忽略内容”,因此无法检测到紧随其后的危险元命令,进而判定该文件是安全的。
- 随后 pgAdmin 会通过
--file参数将该文件传递给 psql 工具。与过滤器不同,psql 工具具备智能处理文本编码的能力,它会自动剔除 BOM 字节,读取其中的危险\!元命令,并执行攻击者植入的恶意载荷。
这种 “解析逻辑不匹配” 的缺陷,使得攻击者能够以运行 pgAdmin 服务器的用户权限,注入并执行任意命令。其造成的后果可能包括:
- 服务器被完全攻陷
- 敏感数据库数据被窃取或删除
- 攻击者在承载数据库基础设施的网络内横向移动
运行在服务器模式下的 pgAdmin 管理员需立即核查自身软件版本。鉴于 9.10 及以下版本均受影响,相关团队应密切关注pgAdmin 9.11 版本的发布,并立即应用厂商提供的缓解措施,以封堵这一高危漏洞。








发表评论
您还未登录,请先登录。
登录