## https://sploitus.com/exploit?id=A26B3604-89A9-5E82-B3E9-A73A477ACB55
# CVE-2026-64638 — Nuclei Detection Template
Template [Nuclei](https://github.com/projectdiscovery/nuclei) para detecção não-intrusiva do **XSS2Shell**, um parser differential pré-autenticado no WordPress Core que permite injeção de elementos DOM na página de login, servindo de base para uma cadeia de XSS → RCE.
> ⚠️ Este template **apenas detecta** a falha de sanitização (etapa de reflexo de marcador na resposta HTML). Ele nĂŁo executa a cadeia completa de exploração (DOM clobbering, JSONP/SOME, roubo de Application Password ou upload de plugin). Uso estrito em ativos sob autorização explĂcita.
## Sobre a vulnerabilidade
O WordPress Core, ao renderizar a mensagem de erro "usuário não registrado" em `wp-login.php`, insere o username submetido em HTML sem escaping consistente entre dois filtros distintos:
- `wp_strip_all_tags()` (baseado no `strip_tags()` do PHP) sĂł reconhece uma tag se ``, `` e `` estĂŁo na allowlist).
O resultado é que um atacante não autenticado consegue injetar elementos DOM arbitrários na página de login, que — combinados com handlers legados do script `user-profile.js`, DOM clobbering da variável `ajaxurl` e JSONP da REST API — permitem execução de JavaScript na origem do WordPress e, em cadeia completa, RCE contra a conta de um administrador.
Descoberto e divulgado por [pwn.ai](https://pwn.ai/blog/xss2shell). Corrigido no **WordPress 7.0.3** (backport até a branch 4.7).
- **CVE:** CVE-2026-64638
- **CVSS:** 9.8 (Critical) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
- **Afetado:** Todas as versões do WordPress Core mantidas antes de 7.0.3
- **Corrigido em:** WordPress 7.0.3 (6 de agosto de 2026)
## O que o template verifica
O template envia uma requisição `POST` para `/wp-login.php` com um payload no campo `log` contendo:
```
```
Se o WordPress estiver vulnerável, o `wp_kses_post()` reconstrĂłi essas strings como elementos HTML reais na resposta. O template usa dois matchers em `regex` (condição `and`) para confirmar que ambas as tags aparecem reconstruĂdas — reduzindo falsos positivos de WAFs que refletem input parcialmente.
## Uso
```bash
# Validar sintaxe do template
nuclei -t CVE-2026-64638.yaml -validate
# Rodar contra um alvo Ăşnico
nuclei -t CVE-2026-64638.yaml -u https://target.com
# Rodar contra uma lista de alvos
nuclei -t CVE-2026-64638.yaml -l targets.txt
# Debug (ver request/response completos)
nuclei -t CVE-2026-64638.yaml -u https://target.com -debug-req -debug-resp
```
## Interpretando o resultado
| Resultado | Significado |
|---|---|
| **Match positivo** | As tags injetadas foram refletidas como HTML real → parser differential presente → alvo vulnerável (não corrigido) |
| **Sem match** | O payload foi escapado ou removido → alvo corrigido (WordPress ≥ 7.0.3) ou protegido por WAF/proxy que normaliza espaços dentro de tags |
## Remediação
Atualizar para **WordPress 7.0.3** ou superior. O patch foi retroportado para todas as branches mantidas a partir da 4.7.
## ReferĂŞncias
- [pwn.ai — XSS2Shell: WordPress Preauth XSS to RCE Chain (CVE-2026-64638)](https://pwn.ai/blog/xss2shell)
- [WordPress 7.0.3 Release Notes](https://wordpress.org/news/2026/08/wordpress-7-0-3-release/)
- [Bypassing CSP using WordPress by abusing Same Origin Method Execution](https://pwn.ai/blog/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution) (pesquisa base do SOME, Paulos Yibelo, 2022)
## Aviso legal
Este template Ă© fornecido para fins de pesquisa em segurança e testes de penetração autorizados. O uso contra sistemas sem autorização explĂcita Ă© ilegal. O autor nĂŁo se responsabiliza por uso indevido.
## Autor
Renzi