
Auto-vérification défensive monocible pour l'exposition Langflow CVE-2025-3248
N'exécutez que sur des serveurs que vous possédez ou que vous êtes autorisé à tester.
Portée : un résultat positif signifie uniquement que cette vérification étroite a trouvé un défi d'authentification et une version de Langflow égale ou supérieure au seuil corrigé pour CVE-2025-3248. Ce n'est pas un verdict général de sécurité, de réputation, de configuration ou de compromission.
Un petit auto-test défensif pour l'exposition Langflow associée à CVE-2025-3248. Donnez à EXPOSECHECK une URL de base – votre propre serveur ou localhost – et il rapporte :
/api/v1/validate/code défie une requête non authentifiée ;1.3.0 ; etCe n'est ni un exploit ni un scanneur de masse. Il accepte une seule cible, n'envoie aucun code exécutable et n'effectue aucune découverte à l'échelle d'Internet. La sonde du point de terminaison de validation ne soumet qu'un objet JSON vide ({}).
Sysdig Threat Research a documenté JADEPUFFER, que ses chercheurs pensent être la première attaque de ransomware exécutée du début à la fin par un agent IA. L'accès initial a été lié à la vulnérabilité Langflow connue et corrigée CVE-2025-3248 : des instances exposées plus anciennes permettaient un accès non authentifié à un point de terminaison de validation de code.
Langflow est un framework légitime d'application IA open source. Le risque est un déploiement exposé et non corrigé – pas Langflow lui-même. Langflow 1.3.0+ contient le correctif pertinent et exige une authentification sur le point de terminaison.
Nécessite Node.js 18+ ; aucun paquet à installer.
node check.js http://localhost:7860
Vous pouvez également afficher une sortie lisible par machine :
node check.js http://localhost:7860 --json
Les codes de sortie sont utiles dans les scripts locaux :
0 — PATCHED FOR CVE-2025-32481 — EXPOSED2 — NEEDS ATTENTION, entrée invalide ou vérification non concluantePATCHED FOR CVE-2025-3248 nécessite à la fois un défi d'auth 401/403 et une version détectée de 1.3.0 ou plus récente. Cela ne signifie pas que le serveur est généralement sûr. Un point de terminaison qui atteint la validation de requête sans défi d'authentification est EXPOSED. Les réponses manquantes, redirigées, bloquées ou ambiguës sont intentionnellement rapportées comme NEEDS ATTENTION, et non supposées sûres.
Ouvrez index.html directement, ou servez le dossier localement :
python3 -m http.server 8080
Puis visitez http://localhost:8080.
Les navigateurs appliquent les règles CORS et de contenu mixte. Un serveur d'origine croisée peut être sain mais quand même empêcher la page de lire sa réponse. Cela produit un résultat non concluant ; utilisez la CLI pour une vérification fiable.
Exécutez la suite de régression intégrée avec Node.js 18+ :
node --test test.js
La suite verrouille le vocabulaire de résultat public afin que l'état corrigé dans le cadre de CVE ne puisse pas régresser silencieusement en une affirmation générale de safe ou tout va bien.
Les démos sont déterministes et ne contactent aucun serveur externe.
CLI :
node check.js --demo exposed
node check.js --demo patched
Navigateur : utilisez Demo: exposed et Demo: patched au-dessus du panneau de verdict. La page charge la démo exposée par défaut, ce qui permet un enregistrement d'écran fiable sans pointer l'outil vers une cible réelle.
L'indication réseau inspecte uniquement l'URL saisie. Elle ne résout pas le DNS et ne prouve pas qu'un hôte est accessible depuis Internet.
Le style vert est limité au prédicat affiché uniquement. En particulier, PATCHED FOR CVE-2025-3248 ne signifie pas SAFE.
Mettez à niveau Langflow vers 1.3.0+, placez-le derrière une authentification et retirez-le d'Internet public.
La défense en profondeur compte toujours : restreindre l'accès entrant, éviter de placer des outils de développement directement sur Internet public, faire pivoter les identifiants si une exposition est suspectée, et examiner les journaux du serveur. Si cet outil rapporte une version plus ancienne derrière une authentification, il renvoie NEEDS ATTENTION car le logiciel doit quand même être corrigé.
MIT. Voir LICENSE.
| Vérification | Signal défensif observé | Signal d'attention |
|---|
| Accessibilité | Toute réponse HTTP confirme que l'hôte est en ligne | Timeout ou échec de connexion est non concluant |
| Authentification du point de terminaison | 401 ou 403 pour une requête vide non authentifiée | 2xx, 400 ou 422 signifie qu'aucun défi d'auth n'a eu lieu avant que la requête soit acceptée/validée |
| Version | Langflow 1.3.0+ | <1.3.0 est vulnérable ; versions inconnues nécessitent une vérification manuelle |
| Indication réseau | URL locale/privée | IP/Domaine public est informatif et devrait inciter à une revue d'exposition |