pgAdmin 4 爆出高危远程代码执行漏洞,CVSS 逼近满分,管理员需立即行动
pgAdmin 开发团队近日紧急推送了 9.17 与 9.18 版本的安全更新,一口气修补了多个高危缺陷。其中最扎眼的一个,是被编号为CVE-2026-17566的远程代码执行漏洞——CVSS 评分高达 9.4,几乎摸到"严重"级别的天花板。对于每天靠 pgAdmin 4 管理 PostgreSQL 数据库的运维人员来说,这可不是个小打小闹的补丁,而是直接关系到服务器生死存亡的大事。
一次"老毛病复发"引发的 RCE 危机
说来有点讽刺,CVE-2026-17566 的根子其实埋得不深,甚至可以说是个"旧伤复发"。
pgAdmin 4 的导入/导出数据工具在后台拼接 psql 命令行时,会把用户输入的 SQL 查询直接塞进模板里。开发团队之前显然也意识到了这里可能出问题,于是手写了一个括号检查器来做防护。但问题就出在这个"手写"上——检查器假设引号前面的反斜杠一定会转义该引号,可 PostgreSQL 早在 2010 年就已经改了默认的字符串处理模式,这个假设在现今任何受支持的版本里都不成立了。
换句话说,防护逻辑本身就成了漏洞的帮凶。攻击者只要构造一条精心设计的查询,就能绕过 psql 的"复制到程序"限制,把任意系统命令偷偷塞进去执行。拿到这个权限意味着什么?意味着攻击者已经不再是"数据库里逛逛"的程度了,而是能直接控制托管数据库的整台服务器。
这还不算完。安全研究人员发现,这个漏洞与 2025 年曝出的 CVE-2025-13780 存在明显的关联性——上次修得不够彻底,这次算是补上了真正的缺口。
凭据也能被"克隆",共享连接成了泄密通道
如果说 RCE 漏洞是明刀明枪,那CVE-2026-17349就是暗箭难防。
这个漏洞的 CVSS 评分为 9.6,比 RCE 还高那么一点点。它的利用方式说出来让人有点哭笑不得:pgAdmin 4 允许用户之间共享服务器连接,而临时服务器克隆功能存在一个设计疏忽——非所有者居然可以克隆其他用户的共享服务器连接,并且直接继承对方存储的数据库密码。
想象一下,你在团队里共享了一个开发环境的连接配置,以为密码是安全存着的。结果隔壁组的同事点了几下鼠标,你的密码就原封不动地躺到了他的连接列表里。没有复杂的攻击链,不需要什么高深的技术,就是一个权限边界没划清楚的问题。
AI 助手这个"新功能",也成了攻击面
pgAdmin 4 近几个版本引入了 AI 助手功能,本意是让写 SQL 变得更轻松。但CVE-2026-17351告诉我们,新功能往往也带来新的风险。
这个漏洞的评分是 9.0,核心问题在于 sqlparse 库和 PostgreSQL 自身的词法分析器之间存在解析不一致。攻击者可以构造一种特殊的输入,让 sqlparse 认为这是一条安全的只读查询,但 PostgreSQL 执行时却会额外多跑几条写操作语句。
更麻烦的是,这种攻击甚至不需要攻击者本人去操作 pgAdmin。他们可以把恶意代码藏在 AI 助手可能读取的任何文档里——比如一份看似正常的表结构说明。当 AI 助手解析这份文档时,就会把这些精心构造的查询当作自己的请求转发出去,从而绕过只读事务的保护机制。
这其实是 CVE-2026-12045 修复不完整留下的尾巴,9.17 版本总算把这块补丁打严实了。
目前尚无野外利用,但留给管理员的时间不多了
值得庆幸的是,截至目前,安全社区还没有发现这三个 CVE 的公开 PoC 或实际利用案例。但这绝不意味着可以高枕无忧——pgAdmin 4 作为开源界最主流的 PostgreSQL 图形化管理工具,部署量极其庞大,一旦漏洞细节被彻底公开,利用代码出现只是时间问题。
受影响的版本范围从 9.0 到 9.16,跨度不小。如果你还在跑 9.16 及之前的版本,尤其是启用了共享连接或 AI 助手功能的服务器,升级这件事最好不要拖到下周。
官方给出的修复方案很直接:立刻升级到9.18 版本(针对 CVE-2026-17566 的完整修复)或至少9.17 版本(覆盖全部三个高危漏洞)。补丁已经放出,下载安装并不复杂,难的是下定决心在业务高峰期之外把这件事办了。
写在最后
pgAdmin 4 这次的安全事件,某种程度上给所有数据库管理工具敲了一记警钟。一个用了十几年的反斜杠转义假设、一个共享连接时的权限疏忽、一个 AI 功能引入后的解析差异——三个漏洞各有各的故事,但共同指向同一个教训:数据库管理工具本身的安全边界,必须和它管理的数据库一样严格。
对于生产环境的 DBA 来说,今晚的待办清单上大概又多了一项。好在这次补丁来得及时,趁漏洞还没被大规模利用之前把门关上,总比事后救火要强得多。
