
Эксплойт proof-of-concept и пакет для воспроизведения в лабораторных условиях для CVE-2026-18937 — неаутентифицированного RCE в плагине WordPress Broken Link Checker до версии 2.4.12.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — Unknown
Плагин WordPress Broken Link Checker до версии 2.4.12 не ограничивает, какие переменные запроса он принимает из пользовательского ввода на сайтах с простыми постоянными ссылками, что позволяет неаутентифицированным пользователям перезаписывать произвольные глобальные переменные PHP и выполнять произвольный код на сервере, когда активна классическая (неблочная) тема.
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | Critical: 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 и более поздние |
| Аутентификация | отсутствует (см. карту исходников) |
| Лицензия | 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() → POCWitness18937Тело HTTP-ответа содержит POCWitness18937. Обычный HTML главной страницы без этой строки — это не он.
Сделайте это в первую очередь: Обновите Broken Link Checker до 2.4.12 или новее.
Проверка после обновления
CVE-2026-18937-Abraxas-Labs.py против исправленной сборки: сопоставленный свидетель не должен появиться.Если вы не можете обновиться немедленно
Цель — только http://127.0.0.1:8088 (или тот loopback, который вы привязали). Не направляйте этот скрипт в интернет.
python3 CVE-2026-18937-Abraxas-Labs.py
Успех — это свидетель, указанный выше, в теле ответа. Обычный 200 HTML — это не он.
Стек loopback, использованный для воспроизведения. Официальные образы, если только Dockerfile в этой папке не собирает из исходников.
cd lab
docker compose up --force-recreate
Привяжите дерево уязвимого продукта рядом с Compose, если YAML монтирует локальный каталог (zip плагина / тег исходников из таблицы версий). Не публикуйте ничего, кроме 127.0.0.1.
# 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. Без гарантий.