Les 20 et 21 octobre 2026, NVD a publié trois CVE notées 9.8 dans des agents IA open source : EvoScientist, OpenSRE et Vibe-Trading (HKUDS). Toutes trois ont été attribuées par VulnCheck.
Il y a deux jours, on parlait de cinq plateformes d'agents dont l'API était ouverte à tous. Ce lot-ci est plus instructif : dans deux cas sur trois, l'API n'a pas besoin d'être exposée. C'est le garde-fou censé demander ton accord avant chaque commande qui ne fait pas son travail, et le contenu que l'agent lit suffit à le piloter.
| Projet | CVE | CVSS 3.1 | Classe (CWE) | Bornes |
|---|---|---|---|---|
| EvoScientist | CVE-2026-77930 | 9.8 | Autorisation absente (CWE-862) | 0.1.0 à avant 0.2.5 |
| OpenSRE | CVE-2026-109444 | 9.8 | Autorisation absente (CWE-862) | jusqu'à 0.1.2026.10.19 inclus |
| Vibe-Trading (HKUDS) | CVE-2026-114108 | 9.8 | Authentification absente (CWE-306) | 0.1.0 à avant 0.1.7 |
Les trois scores CVSS 3.1 sont publiés par VulnCheck (CNA), avec le vecteur AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, et VulnCheck donne 9.3 en CVSS 4.0 pour chacune. NVD ne les a pas analysées : statut Deferred pour les trois. Aucune n'est au CISA KEV à la date de rédaction.
EvoScientist — CVE-2026-77930
EvoScientist demande une validation humaine avant d'exécuter une commande shell. Sauf que cette validation (le paramètre interrupt_on) n'est pas appliquée aux sous-agents asynchrones.
D'après la description NVD, un attaquant n'a qu'à placer des instructions dans du contenu que l'agent ingère, une page web récupérée par exemple. L'agent appelle alors start_async_task, délègue la commande à un sous-agent, et celle-ci s'exécute avec les privilèges de l'utilisateur et les secrets de son environnement, sans que la demande de confirmation n'apparaisse jamais.
La référence NVD pointe vers la version 0.2.5, première hors plage, et vers le commit correctif.
OpenSRE — CVE-2026-109444
OpenSRE est un agent qui trie des alertes d'exploitation. En mode sans interface (headless), la fonction execution_allowed() du présentateur renvoie toujours True : l'outil shell_run s'exécute sans confirmation.
Le vecteur d'attaque décrit par NVD est parlant : il suffit d'injecter des instructions dans une alerte ou un message Slack que l'agent va trier. Il exécute les commandes sur l'hôte et peut exfiltrer les identifiants LLM, Slack et cloud. Pour un outil de SRE, branché par construction sur la supervision et les comptes cloud, c'est le pire scénario.
NVD indique « jusqu'à 0.1.2026.10.19 inclus » sans version corrigée.
Vibe-Trading — CVE-2026-114108
Ici, pas besoin d'injection. La fonction require_auth() de l'API FastAPI sort immédiatement si API_AUTH_KEY n'est pas définie : sans cette variable, toute l'API est ouverte. Un attaquant non authentifié peut alors :
- poster des messages sur
/sessions/{id}/messagespour faire exécuter des commandes shell en root via l'outilBashTool; - déposer des fichiers
.pyou.shvia/upload; - lire l'historique des sessions et récupérer des clés d'API partielles.
La première version hors plage est la 0.1.7 d'après la description.
Ce que ce lot apprend
- Une validation humaine n'est un contrôle que si elle couvre tous les chemins. Chez EvoScientist, le chemin asynchrone y échappe ; chez OpenSRE, un mode d'exécution la neutralise. Un contrôle qui dépend du mode ou du chemin d'appel est un contrôle à tester, pas à supposer.
- Tout contenu lu par l'agent est une entrée de l'attaquant. Une page web, une alerte, un message Slack : si l'agent les lit et peut agir, l'auteur de ce contenu peut agir aussi. C'est la prompt injection indirecte, et elle n'a pas besoin d'un port ouvert.
- « Sécurisé si configuré » veut dire ouvert par défaut. Le cas Vibe-Trading reprend le motif déjà vu chez Letta ou Cognition : l'authentification dépend d'une variable que personne n'a pensé à remplir.
Ce sont des déductions tirées des descriptions NVD : aucune exploitation n'est documentée dans les références à ce jour.
Versions
- EvoScientist : passe en 0.2.5 ou au-delà (version référencée par NVD).
- Vibe-Trading : passe en 0.1.7 ou au-delà, et définis quand même
API_AUTH_KEY. - OpenSRE : aucune version corrigée indiquée par NVD. Consulte le dépôt
Tracer-Cloud/opensreet l'advisory VulnCheck cités en références.
Ces bornes viennent de la description NVD : ce sont des bornes, pas forcément la version à installer. Vérifie les notes de version.
Détection
- Inventaire : ces outils s'installent souvent sur un poste de développeur ou une VM de test. Cherche les processus Python
evoscientist,opensre, et les API FastAPI de Vibe-Trading. - Vibe-Trading : appels à
/sessions/*/messagesou/uploaddepuis des IP inconnues ; variableAPI_AUTH_KEYabsente de l'environnement. - OpenSRE : commandes shell lancées par le processus de l'agent qui ne correspondent à aucune action de triage attendue ; alertes ou messages Slack contenant des instructions en langage naturel adressées à l'agent.
- EvoScientist : appels à
start_async_taskdans les journaux de l'agent après la lecture d'une page web. - Facturation LLM et cloud : consommation inhabituelle sur les clés présentes dans l'environnement.
Mitigation
- Mets à jour EvoScientist et Vibe-Trading dans les versions indiquées ci-dessus.
- OpenSRE : n'utilise pas le mode headless avec l'outil
shell_runactif tant qu'aucun correctif n'est publié, et limite les sources (canaux Slack, alertes) que l'agent traite. - Fais tourner les agents avec le minimum de secrets : pas d'identifiants cloud administrateur dans leur environnement, des clés d'API LLM dédiées et plafonnées.
- Isole l'exécution : conteneur sans privilèges, sans accès au réseau interne, plutôt que l'hôte ou le poste du développeur.
- Si un agent a lu du contenu non maîtrisé avec une version vulnérable : considère ses secrets comme exposés et renouvelle-les.
Pourquoi surveiller en continu vos agents IA
Ces projets sortent une version par semaine et s'installent en dehors de tout processus de validation. Trois CVE critiques en deux jours, dont une sans aucune version corrigée : sans inventaire, impossible de savoir lesquels tournent chez toi et avec quels secrets.
Avec cveo.tech, ajoute tes outils IA à ton parc et reçois une alerte dès qu'une CVE critique les touche.