pgAdmin 4 连曝三项高危安全漏洞,CVSS 评分全线突破 9.0,数据库管理员需紧急处置
PostgreSQL 生态中最广为人知的图形化管理工具 pgAdmin 4,近日被安全团队披露存在三个严重缺陷。这三个漏洞的 CVSS v4 评分分别达到了 9.5、9.4 和 9.3,全部属于"严重"级别。攻击者一旦得手,轻则通过存储型 XSS 劫持管理会话,重则直接在目标服务器上执行远程代码。目前官方已在 9.16 版本中完成了全部修复,尚未观察到野外利用案例,但鉴于漏洞细节与补丁同步公开,留给管理员缓冲的时间窗口并不宽裕。
为什么 pgAdmin 的安全问题牵一发而动全身
pgAdmin 4 在全球范围内拥有庞大的用户基数,几乎成了 PostgreSQL 管理工具的默认选项。从个人开发者到企业 DBA,大量运维人员依赖它完成日常的数据库连接、查询编写和性能监控。问题在于,很多团队为了便于协作,会选择以服务器模式(Server Mode)部署 pgAdmin。这种配置下,多个用户通过浏览器共享访问同一个 pgAdmin 实例,一旦该实例本身存在安全缺陷,攻击面就不再局限于单台数据库,而是可能波及整个内部网络。
这次曝光的三个漏洞恰好覆盖了不同的攻击路径:Web 层面的 XSS 注入、服务端点的身份认证绕过,以及 AI 功能的提示注入。三者叠加,意味着攻击者可以从多个维度渗透进系统。
存储型 XSS:恶意表名就能植入攻击代码
CVE-2026-12048 是一个典型的存储型跨站脚本漏洞,CVSS 评分为 9.3。问题的根源出在 pgAdmin 4 渲染 PostgreSQL 错误消息和 Explain Plan 节点的方式上。当数据库返回的文本包含 HTML 标签时,pgAdmin 内部使用的 html-react-parser 组件未能进行有效过滤,导致恶意脚本直接注入到页面 DOM 中。
攻击门槛相当低。一个权限普通的用户,只需要创建一个精心命名的表,就能让 pgAdmin 在渲染过程中执行嵌入的 iframe 或 JavaScript 代码。更棘手的是,由于恶意内容是从 pgAdmin 自身界面内部加载的,传统的 X-Frame-Options 等帧阻断策略形同虚设。攻击者可以构造出与正版 pgAdmin 对话框几乎一致的钓鱼页面,诱导管理员输入敏感凭证。
开发团队在修复时引入了 DOMPurify 对渲染路径进行净化处理,从源头上阻断了这类注入。
未经认证即可触发的远程代码执行
如果说 XSS 让人警惕,那么 CVE-2026-12046 则足以让运维人员脊背发凉。这个漏洞的 CVSS 评分高达 9.5,是此次披露中最危险的一个。问题的核心在于 pgAdmin 4 的 SQL 编辑器有两个端点遗漏了登录验证装饰器。在服务器模式下,这意味着攻击者无需任何账号密码,就能直接向这些端点发送请求。
这两个端点涉及 pickle 反序列化操作。Python 的 pickle 模块在反序列化不可信数据时,历来是远程代码执行的重灾区。攻击者若能构造特定的序列化载荷,就有可能在 pgAdmin 所在的服务器上执行任意命令。不过,完整的攻击链还需要两个额外条件:获取 pgAdmin 的私钥,以及具备向会话目录写入文件的权限。换句话说,这个漏洞更像是攻击者在已经突破部分防线后的"临门一脚",但即便如此,其潜在危害也不容小觑。
修复方案简洁而直接:为这两个端点补上缺失的登录验证装饰器,拒绝一切未经认证的访问。
AI 助手被"策反":只读事务的防线形同虚设
第三个漏洞 CVE-2026-12045 针对的是 pgAdmin 4 内置的 AI 助手功能,CVSS 评分为 9.4。这个助手的设计初衷是帮助用户生成 SQL 查询,为了安全起见,它默认在只读事务中运行生成的代码,防止误操作或恶意指令破坏数据。
然而,安全研究人员发现,通过提示注入(Prompt Injection)手段,攻击者可以构造多语句载荷。前半段语句正常执行,随后悄然关闭只读事务,后续语句便会在自动提交模式下运行。如果攻击者事先在数据库对象中植入了恶意文本,就能诱导 AI 助手执行非预期的写入操作。一旦该助手连接的是具有超级用户权限的账号,甚至可以通过 PostgreSQL 的COPY TO PROGRAM命令直接执行系统级指令。
官方补丁对此的应对策略是限制 AI 助手只能执行单条只读语句,彻底封堵了多语句绕过的可能性。
升级到 9.16 是目前最稳妥的应对
pgAdmin 开发团队已经在 9.16 版本中一次性修复了上述全部三个漏洞。考虑到漏洞评分均已突破 9.0,且补丁细节已经公开,继续停留在旧版本的风险正在快速累积。建议管理员尽快规划升级,尤其是采用服务器模式部署的环境,更应优先处理。
除了升级版本之外,还有几条安全实践值得同步落实:
对 pgAdmin 实例启用网络层访问控制,避免直接暴露在公网;
为 AI 助手功能配置最小权限账号,杜绝使用超级用户连接;
将数据库服务器返回的异常文本视为不可信输入,保持对异常表名和字段名的警觉;
定期检查 pgAdmin 的日志记录,留意来自未认证端点的异常请求。
pgAdmin 4 作为 PostgreSQL 生态的基石工具,其安全性直接影响无数数据库的命脉。这次漏洞的集中爆发,既是一次警示,也提醒我们在引入 AI 功能的同时,必须重新审视每一个可能的安全边界。升级、加固、保持警觉——这三件事,现在就该做。
