
Prueba de concepto de exploit y paquete de reproducción de laboratorio para CVE-2026-18937, un RCE no autenticado en el plugin de WordPress Broken Link Checker anterior a 2.4.12.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-18937
Broken Link Checker 2.4.11 — Desconocido
El plugin de WordPress Broken Link Checker anterior a 2.4.12 no limita qué variables de consulta acepta de la entrada del usuario en sitios que usan enlaces permanentes simples, lo que permite a usuarios no autenticados sobrescribir variables globales arbitrarias de PHP y ejecutar código arbitrario en el servidor cuando un tema clásico (no de bloques) está activo.
| CVE | CVE-2026-18937 · CVE.org |
| CWE | CWE-94 |
| CVSS | Crítico: 9.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Producto | Broken Link Checker |
| Afectado | todas las versiones hasta la 2.4.11 (inclusive) |
| Parcheado | 2.4.12 y posteriores |
| Autenticación | ninguna (ver mapa de origen) |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1 · paquete de divulgación para el proveedor/cliente, no un escáner |
La inyección de variables de consulta es Webhook::parse_request fusionando $_GET, no una acción ajax=. HTTP es GET / con claves de consulta adicionales.
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() → POCWitness18937El cuerpo HTTP contiene POCWitness18937. HTML genérico de inicio sin esa cadena no lo es.
Haga esto primero: Actualice Broken Link Checker a 2.4.12 o posterior.
Verifique después de la actualización
CVE-2026-18937-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.Si no puede actualizar de inmediato
Apunte solo a http://127.0.0.1:8088 (o al loopback que haya enlazado). No apunte este script a internet.
python3 CVE-2026-18937-Abraxas-Labs.py
El éxito es el testigo anterior en el cuerpo de la respuesta. HTML 200 genérico no lo es.
Pila de loopback usada para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.
cd lab
docker compose up --force-recreate
Enlace el árbol del producto vulnerable junto a Compose si el YAML monta un directorio local (zip del plugin / etiqueta de origen de la tabla de versiones). No publique nada excepto 127.0.0.1.
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d/
wpscan.com/vulnerability/a23b76eb-107d-4e02-8eae-c3c5fa5b003d
Directorio de plugins: broken-link-checker
Navegador Trac: plugins.trac.wordpress.org/broken-link-checker
Etiquetas SVN: plugins.svn.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.
Este paquete de divulgación está licenciado bajo la GNU Affero General Public License v3.0. Ver LICENSE.
Este paquete es para el proveedor, el propietario del sitio y laboratorios con licencia. El script se comunica con 127.0.0.1. Usarlo contra sistemas que no posee no está autorizado por Abraxas Labs. Sin garantía.