Vulnérabilité dans dfir-unfurl (CVE-2026-40035)
Résumé
Vulnérabilité dans dfir-unfurl (CVE-2026-40035). Des informations confidentielles peuvent être exposées. Exploitable via debug.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
Summary
The Unfurl web app enables Flask debug mode even when configuration sets debug = False. The config value is read as a string and passed directly to app.run(debug=...), so any non-empty string evaluates truthy. This leaves the Werkzeug debugger active by default.
Details
unfurl/app.py:web_app()readsdebugviaconfig['UNFURL_APP'].get('debug'), which returns a string.UnfurlApp.__init__passes that string directly toapp.run(debug=unfurl_debug, ...).- If
unfurl.iniomitsdebug, the default argument is the string"True". - As a result, debug mode is effectively always on and cannot be reliably disabled via config.
PoC
- Create a local
unfurl.iniwithdebug = Falseunder[UNFURL_APP]. - Run the server using
unfurl_app(orpython -c 'from unfurl.app import web_app; web_app()'). - Observe server logs showing
Debug mode: on/Debugger is active!. - The included PoC script
security_poc/poc_debug_mode.py --spawnautomates this check.
PoC Script (inline)
#!/usr/bin/env python3
"""
Unfurl Debug Mode PoC (Corrected)
================================
This PoC demonstrates that Unfurl's Flask debug mode is effectively
**always enabled by default** due to string parsing of the `debug`
config value. Even `debug = False` in `unfurl.ini` evaluates truthy
when passed to `app.run(debug=...)`.
Two modes:
1) --spawn (default): launch a local Unfurl server with debug=False
in a temp config and inspect logs for "D…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Résumé généré automatiquement
Assemblé par SecPulse à partir des données sources (CVSS, CWE, versions affectées) à l'aide de modèles, sans IA. Vérifiez la description d'origine et les références ci-dessous.
Une vulnérabilité référencée CVE-2026-40035 a été découverte dans dfir-unfurl.
Des attaquants peuvent cibler un point d'entrée spécifique comme debug à distance pour détourner le produit.
Des informations confidentielles peuvent être exposées. Score CVSS : 9.1/10.
Action : appliquez le correctif officiel de l'éditeur.
En cas de doute, contactez votre service informatique ou cherchez « dfir-unfurl CVE-2026-40035 » sur le site de l'éditeur.
CVE-2026-40035 (dfir-unfurl) — CWE-489 / CVSS v3 9.1
Vecteur d'attaque : distant (réseau) / non authentifié / sans interaction utilisateur
Surface d'attaque : debug / UnfurlApp.__init__ / unfurl.ini / unfurl_app
Plan : 1) Audit SBOM, 2) Mise à jour staging→prod, 3) Surveillance WAF/proxy sur les endpoints affectés, 4) Recherche d'IOC dans les logs.
Réfs : voir GHSA / avis éditeur / version corrigée liés sur cette page.
Une vulnérabilité (CWE-489) affecte dfir-unfurl. Les attaquants atteignent le code vulnérable via debug sans authentification.
Consultez l'avis de l'éditeur pour les versions affectées de dfir-unfurl. Surface d'attaque : debug / UnfurlApp.__init__ / unfurl.ini / unfurl_app.
Gravité : Critique (CVSS 9.1/10). Des informations confidentielles peuvent être exposées.
Mettre à jour vers la version corrigée selon l'avis éditeur.
En attendant le correctif : désactivez la fonctionnalité concernée, appliquez des règles WAF, ou restreignez l'accès par ACL réseau.
Recherchez dans les logs des requêtes correspondant aux IOC connus de cette CVE. Auditez les SBOM/dépendances.
Actions de réponse
Étapes concrètes et exemples de commandes que les équipes SOC/SRE doivent exécuter dans l'ordre
-
1Identify exposure identify
grep -r 'dfir-unfurl' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
dfir-unfurlを grep し、稼働しているサービス・バージョンを把握する。 -
2Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Paquets affectés
Références
- advisory disclosure@vulncheck.com
- exploit github.com
- package github.com
- web github.com