CVE-2026-17351 (CVSS 9.0) - The fix for CVE-2026-12045 in pgAdmin 4 9.16 required the LLM-supplied query pas

CVE-2026-17351是pgAdmin 4 AI Assistant中的SQL注入绕过漏洞,CVSS 9.0。攻击者利用sqlparse与PostgreSQL解析差异可绕过只读事务保护,执行任意SQL,导致数据篡改甚至RCE。本文分析根因、攻击场景及修复方案。

🔥 热门漏洞情报 · NVD-Latest · 2026-07-31

CVE-2026-17351 (CVSS 9.0) - The fix for CVE-2026-12045 in pgAdmin 4 9.16 required the LLM-supplied query pas

Critical · CVSS 9.0 SQL注入(输入验证不当)
CVE-2026-17351
📊 跨来源整合PoC-in-GitHub

📋 漏洞概述

pgAdmin 4 AI助手存在SQL注入绕过(CVE-2026-17351),利用sqlparse与PostgreSQL解析差异可执行任意SQL,导致写入或RCE。

📋 基础信息

受影响版本pgAdmin 4 9.16(修复CVE-2026-12045的版本中引入的绕过)
漏洞类型SQL注入(输入验证不当)
CVSS9.0 · Critical
CVECVE-2026-17351

🔬 漏洞根因

pgAdmin 4 9.16为修复CVE-2026-12045,使用sqlparse验证AI助手工具传入的SQL是否恰好为一条非事务控制语句,并在BEGIN TRANSACTION READ ONLY包裹的事务中执行。但sqlparse对字符串字面量中的反斜杠转义规则与PostgreSQL默认的standard_conforming_strings=on不一致:PostgreSQL将反斜杠视作普通字符,而sqlparse认为它转义了后续引号,导致攻击者可以构造让sqlparse误判为单条SELECT的载荷,实际PostgreSQL执行多条语句,从而绕过只读事务限制。此外,候选修复试图使用psycopg的prepare=True强制扩展查询协议,但pgAdmin默认prepare_threshold为None,psycopg3实际回退到简单查询协议,修复无效。最终正确修复是在专用连接上设置prepare_threshold=0以强制扩展协议。

🎯 攻击场景

1. 前提条件:目标pgAdmin 4版本为9.16,AI Assistant已启用,且攻击者能通过数据库对象(如存储过程、视图、表数据、注释等)植入恶意载荷,使AI Assistant在读取相关内容后将其作为工具调用内容。2. 攻击者构造SQL载荷,例如:SELECT '\';COMMIT;CREATE TABLE pwn(x int);SELECT 1 --'。该载荷在sqlparse中解析为一条SELECT语句,绕过验证。3. AI Assistant调用execute_sql_query工具,将载荷发送给pgAdmin后端。4. pgAdmin在BEGIN TRANSACTION READ ONLY中执行该载荷,PostgreSQL实际解析为多条语句:先COMMIT结束只读事务,随后CREATE TABLE等写操作不再受只读限制,最后ROLLBACK因无活动事务成为no-op。5. 攻击者进一步可执行写操作、插入恶意数据、调用危险函数,甚至结合其他漏洞实现RCE(推测:若数据库用户具备superuser权限或可利用COPY PROGRAM等特性)。

💥 漏洞影响

攻击者可通过提示注入绕过pgAdmin AI Assistant的只读事务保护,执行任意SQL语句,包括数据篡改、表结构变更、权限提升,甚至可能借助PostgreSQL的超级用户权限实现远程代码执行(RCE)。影响范围涵盖所有启用AI Assistant并连接可被攻击者植入恶意内容的数据库的pgAdmin实例,对数据完整性和机密性造成严重威胁。

🛡️ 修复建议

升级到官方发布修复该CVE的pgAdmin 4版本(9.16之后的修复版本)。临时缓解措施:1. 禁用AI Assistant功能,或限制其对敏感数据库对象的访问;2. 审查并清理数据库对象中可能存在的恶意负载;3. 如无法升级,可手动将pgAdmin服务器连接的“Prepare threshold”参数设置为0,强制使用扩展查询协议(需验证有效性);4. 监控AI Assistant的SQL执行日志,检测异常的多语句载荷。

📎 参考链接

🚨 威胁评估

📈 EPSS 利用概率低 (0.4%) (高于 36.8% 的漏洞)
🚨 CISA KEV未被已知利用
🔧 公开 PoC1 个公开 PoC 仓库

⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-08-03 08:16 | 来源: NVD-Latest

🤖 常见问题解答(FAQ)

❓ 攻击者如何绕过只读事务限制?

利用sqlparse与PostgreSQL对字符串中反斜杠转义的不同理解,构造载荷使sqlparse认为是一条SELECT,而PostgreSQL实际执行多条语句,其中COMMIT结束只读事务,后续写操作不受限制。

❓ 如何检测该漏洞是否被利用?

检查pgAdmin日志中AI Assistant执行的SQL是否含反斜杠、quote、COMMIT、CREATE等组合的异常语句;数据库审计日志中查找非预期的事务控制语句和写操作。

❓ 临时缓解措施有哪些?

禁用AI Assistant或限制其读权限;清理数据库对象中的恶意内容;设置prepare_threshold=0强制扩展查询协议;监控异常SQL。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)