免责声明:本概念验证仅用于教育和研究目的。请勿在未经授权或许可的系统上使用此软件。作者对因滥用或使用本项目造成的任何损害不承担任何责任。
针对 CVE-2026-9082 (Drupal SA-CORE-2026-004) 的概念验证(poc.py),这是一项 Drupal 核心中的严重 SQL 注入漏洞,当 Drupal 配置使用 PostgreSQL 数据库后端时,可能允许攻击者提交任意 SQL 查询。
该漏洞源于 Drupal 核心的 PostgreSQL 实体查询条件翻译器,攻击者可以操纵实体查询 IN 过滤器中的数组键,从而注入任意 SQL 片段。
本 PoC 与 Drupal 的 JSON:API 层交互,注入一个畸形的 SQL 条件,在受影响版本中会导致 HTTP 500 内部服务器错误,而已修补版本会正确清理查询键并防止异常。
CVE ID: CVE-2026-9082
SA-CORE ID: SA-CORE-2026-004
CVSS 评分: 6.5 (中等)
CVSS 向量: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
分类: SQL 注入
影响: 身份验证绕过、信息泄露、权限提升、远程代码执行(取决于配置)
受影响版本 (Drupal 核心):
>= 8.9.0, < 10.4.10>= 10.5.0, < 10.5.10>= 10.6.0, < 10.6.9>= 11.0.0, < 11.1.10>= 11.2.0, < 11.2.12>= 11.3.0, < 11.3.10只需运行
make
我们提供了一个使用以下技术的 docker-compose 复现实验环境:
两种配置均包含:
/jsonapi/node/article 公开访问,无需认证(许多 Drupal 站点的常见配置)article 节点,以确保 /jsonapi/node/article 过滤功能真实有效
站点文件和数据库内容已预先准备在 sites.tar.gz 和 init.sql.gz 中在撰写本文时,Docker Hub 上尚无 Drupal 11.2.12 可用,因此我们构建了一个通过 composer 安装的自定义镜像