Sploitus

Exploit for CVE-2026-64638

githubexploit · 2026-08-07

Exploit Code

README72 lines
## 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