🧩 项目概述
CVE-2025-13780 是 pgAdmin 4 中的一个严重安全漏洞,该漏洞允许远程攻击者在主机系统上执行任意命令。
漏洞发生在pgAdmin运行于服务器模式并用于恢复PLAIN格式的PostgreSQL数据库转储文件时。精心构造的SQL文件可以绕过pgAdmin的保护机制,触发底层操作系统的命令执行。
严重性: 🔴 严重 CVSS v3.1 评分: 9.1 / 10 攻击类型: 远程代码执行 (RCE) 状态: 已修复
🎯 受影响范围
| 组件 | 状态 |
|---|---|
| 产品 | pgAdmin 4 |
| 受影响版本 | ≤ 9.10 |
| 已修复版本 | 9.11+ |
| 部署模式 | 服务器模式 |
| 恢复类型 | PLAIN格式SQL转储 |
🛠️ 技术剖析
执行数据库恢复操作时:
- pgAdmin 将上传的SQL文件传递给 psql 客户端。
- pgAdmin 尝试使用正则表达式过滤来阻止危险的psql元命令(例如
\!)。 - 攻击者可通过以下方式绕过该过滤器:
- 使用非标准空白字符
- 使用回车符
- 利用UTF-8 BOM或编码技巧
psql客户端仍会正确解释这些命令。- 最终导致:以pgAdmin服务用户身份执行任意操作系统命令。
⚠️ 此案例证明,基于正则表达式的输入过滤不足以对抗解释器层面的解析逻辑。
🔐 漏洞影响
| 领域 | 影响 |
|---|---|
| 🖥️ 主机系统 | 命令执行 |
| 🗄️ 数据库 | 可能导致完全失陷 |
| 🔑 权限提升 | 可能性存在 |
| 🌐 攻击向量 | 网络 |
| 👤 所需权限 | 低 |
| 🧍 用户交互 | 无需 |
🧪 漏洞利用现状
- ✅ 已公开概念验证 (PoC)
- 恶意SQL转储文件能够在恢复操作中可靠地实现RCE
- 漏洞利用以pgAdmin进程权限执行命令
🛡️ 缓解与修复措施
✅ 立即行动
- 升级到 pgAdmin 4 v9.11 或更高版本
- 在可能的情况下,禁用或限制PLAIN格式恢复
🔒 安全加固建议
- 在受限制的环境中运行pgAdmin
- 应用最小权限原则
- 监控恢复活动并审计日志
🧠 官方修复方案
- pgAdmin 已将正则表达式过滤替换为 psql 受限模式
- 元命令现已在解释器层面被阻止
📦 对主流发行版的影响
| 发行版 | 状态 |
|---|---|
| Red Hat | 不受影响 |
| Ubuntu | 不受影响 |
⚠️ 以上评估仅适用于操作系统打包版本。 独立安装或上游pgAdmin安装可能仍然存在风险。
📝 总结
CVE-2025-13780 是一个教科书级别的案例,说明了为何输入过滤不能作为安全边界。 如果您在服务器模式下运行pgAdmin 4并允许SQL恢复,那么升级是必须的。 6HFtX5dABrKlqXeO5PUv/84SoIo+TE3firf/5vX8AZ4BlMb+sGEtCgdyzF5enQ+5