abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — 未知
Broken Link Checker WordPress 插件在 2.4.12 之前的版本中,在使用普通固定链接(plain permalinks)的站点上未限制其从用户输入接受的查询变量,允许未认证用户覆盖任意 PHP 全局变量,并在经典(非区块)主题处于活动状态时在服务器上执行任意代码。
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | 严重:9.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| 产品 | Broken Link Checker |
| 受影响 | 所有版本 至 2.4.11(含) |
| 已修复 | 2.4.12 及更高版本 |
| 认证 | 无(见 source map) |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅限 127.0.0.1 · 供应商/客户披露包,非扫描器 |
查询变量注入是 Webhook::parse_request 合并 $_GET,而非 ajax action=。HTTP 为 GET / 并附带额外查询键。
GET/?page_id=4&shortcode_tags[blcpoc]=poc_witness_18937GET /?page_id=<front page id>&shortcode_tags[blcpoc]=poc_witness_18937Webhook::parse_request (plain permalinks) → $wp->query_vars += $_GETWP::register_globals → $GLOBALS['shortcode_tags']['blcpoc']=poc_witness_18937the_content('[blcpoc]') → poc_witness_18937() → POCWitness18937HTTP 正文包含 POCWitness18937。不含该字符串的通用首页 HTML 不算。
首先执行: 将 Broken Link Checker 更新至 2.4.12 或更高版本。
升级后验证
CVE-2026-18937-Abraxas-Labs.py:映射的见证不得出现。若无法立即更新
仅针对 http://127.0.0.1:8088(或你绑定的回环地址)。请勿将此脚本指向互联网。
python3 CVE-2026-18937-Abraxas-Labs.py
成功即响应正文中出现上述见证。通用 200 HTML 不算。
用于复现的回环栈。除非此文件夹中的 Dockerfile 从源码构建,否则使用官方镜像。
cd lab
docker compose up --force-recreate
如果 YAML 挂载本地目录(来自版本表的插件 zip / 源码 tag),请将存在漏洞的产品目录树绑定到 Compose 旁边。除 127.0.0.1 外不发布任何内容。
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d/
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d
插件目录:broken-link-checker
Abraxas Labs:abraxaslabs.tech · github.com/abraxas · @abraxas_null
# CVE-2026-18937 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-18937`
- CWE: CWE-94
- published: 2026-08-19T06:17:38.847
## NVD description
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it accepts from user input on sites using plain permalinks, allowing unauthenticated users to overwrite arbitrary PHP global variables, and to execute arbitrary code on the server when a classic (non-block) is active.
## MITRE description
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it accepts from user input on sites using plain permalinks, allowing unauthenticated users to overwrite arbitrary PHP global variables, and to execute arbitrary code on the server when a classic (non-block) is active.
## Affected
- Unknown Broken Link Checker 0 affected
## References (JSON sources only)
- https://wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d/
- https://github.com/advisories/GHSA-c2xc-88v3-37g2
- https://nvd.nist.gov/vuln/detail/CVE-2026-18937
- https://wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d
## GitHub advisory
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it...
The Broken Link Checker WordPress plugin before 2.4.12 does not limit which query variables it accepts from user input on sites using plain permalinks, allowing unauthenticated users to overwrite arbitrary PHP global variables, and to execute arbitrary code on the server when a classic (non-block) is active.
本披露包依据 GNU Affero General Public License v3.0 许可。见 LICENSE。
本包面向供应商、站点所有者及授权实验环境。该脚本仅与 127.0.0.1 通信。将其用于你并不拥有的系统未获 Abraxas Labs 授权。不提供任何担保。