文章总结: pgAdmin存在严重远程代码执行漏洞CVE-2025-13780,影响9.10及更早版本。攻击者可利用UTF-8BOM字节序列绕过安全过滤器,通过恶意数据库恢复文件在服务器上执行任意命令,从而完全接管系统。建议管理员立即更新至修复版本或应用官方缓解措施。 综合评分: 96 文章分类: 漏洞分析,漏洞预警,代码审计,WEB安全,数据安全
pgAdmin 严重远程代码执行漏洞 (CVE-2025-13780) 可绕过修复,允许通过恶意数据库恢复接管服务器
sec随谈
sec随谈
2025年12月15日 09:04 北京
全球最流行的开源PostgreSQL管理工具pgAdmin被发现存在严重安全 漏洞。该漏洞编号为CVE-2025-13780,CVSS评分为9.1,属于严重级别。攻击者可以利用该软件处理文件编码方式中的一个细微缺陷,实现远程代码执行(RCE)。
该漏洞影响以服务器模式运行的 pgAdmin 9.10 及更早版本。它会导致攻击者利用例行的数据库恢复操作,在主机服务器上执行任意命令,从而对数据库完整性构成灾难性风险。
该漏洞尤其令人担忧,因为它绕过了针对先前问题 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 的发布,或立即应用供应商提供的缓解措施,以弥补这一关键漏洞。
参考链接:
https://github.com/pgadmin-org/pgadmin4/issues/9368
查看原文:《pgAdmin 严重远程代码执行漏洞 (CVE-2025-13780) 可绕过修复,允许通过恶意数据库恢复接管服务器》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论