
Pack d'exploitation proof-of-concept et de reproduction en laboratoire pour CVE-2026-18937, une RCE non authentifiée dans le plugin WordPress Broken Link Checker avant la version 2.4.12.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — Inconnu
Le plugin WordPress Broken Link Checker antérieur à 2.4.12 ne limite pas les variables de requête qu'il accepte depuis les entrées utilisateur sur les sites utilisant des permaliens simples, permettant à des utilisateurs non authentifiés d'écraser des variables globales PHP arbitraires, et d'exécuter du code arbitraire sur le serveur lorsqu'un thème classique (non-block) est actif.
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | Critique : 9.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Produit | Broken Link Checker |
| Affecté | toutes les versions jusqu'à 2.4.11 (incluse) |
| Corrigé | 2.4.12 et ultérieures |
| Auth | aucune (voir la source map) |
| Licence | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 uniquement · pack de divulgation fournisseur/client, pas un scanner |
L'injection de variable de requête provient de Webhook::parse_request qui fusionne $_GET, et non d'une action ajax=. Le HTTP est GET / avec des clés de requête supplémentaires.
GET/?page_id=4&shortcode_tags[blcpoc]=poc_witness_18937GET /?page_id=<front page id>&shortcode_tags[blcpoc]=poc_witness_18937Webhook::parse_request (permaliens simples) → $wp->query_vars += $_GETWP::register_globals → $GLOBALS['shortcode_tags']['blcpoc']=poc_witness_18937the_content('[blcpoc]') → poc_witness_18937() → POCWitness18937Le corps HTTP contient POCWitness18937. Un HTML de page d'accueil générique sans cette chaîne n'est pas le bon résultat.
À faire en premier : Mettre à jour Broken Link Checker vers 2.4.12 ou une version ultérieure.
Vérifier après la mise à jour
CVE-2026-18937-Abraxas-Labs.py contre la version corrigée : le témoin mappé ne doit pas apparaître.Si vous ne pouvez pas mettre à jour immédiatement
Cibler uniquement http://127.0.0.1:8088 (ou le loopback que vous avez lié). Ne pointez pas ce script vers Internet.
python3 CVE-2026-18937-Abraxas-Labs.py
Le succès correspond au témoin ci-dessus dans le corps de la réponse. Un HTML 200 générique n'est pas le bon résultat.
Pile loopback utilisée pour la reproduction. Images officielles sauf si un Dockerfile dans ce dossier est construit depuis les sources.
cd lab
docker compose up --force-recreate
Lier l'arborescence du produit vulnérable à côté de Compose si le YAML monte un répertoire local (zip du plugin / tag source issu du tableau des versions). Ne publier rien d'autre que 127.0.0.1.
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d/
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d
Répertoire de plugins : broken-link-checker
Navigateur Trac : plugins.trac.wordpress.org/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.
Ce pack de divulgation est sous licence GNU Affero General Public License v3.0. Voir LICENSE.
Ce pack est destiné au fournisseur, au propriétaire du site et aux labs autorisés. Le script communique avec 127.0.0.1. L'utiliser contre des systèmes que vous ne possédez pas n'est pas autorisé par Abraxas Labs. Aucune garantie.