Sécurité IA

AI Security — 28 Août 2026

Lo nuevo hoy

Today's highlights

Points forts du jour

Click en cualquiera para ir al detalle

Click any item to jump to the full section

Cliquez un élément pour aller à la section complète

🛡️

Framework CVEs

Crítico

CVE-2026-81735 — UI-TARS-desktop: el servidor MCP escucha en todas las interfaces y la auth es opcional (10.0)

startServer.ts, en el paquete mcp-http-server de UI-TARS-desktop, ponía la dirección de escucha en :: cuando no se le pasaba host. El middleware de autenticación existe, pero es opcional y no se aplica por defecto. Resultado: los servicios de comandos y de filesystem quedan expuestos a cualquiera que alcance el puerto, con RCE como el usuario que corre el server.

Ojo con el detalle de versionado: el paquete quedó en 1.2.4 aun después del parche, así que el límite real es el commit c2ad42e3, que cambia el bind por defecto a 127.0.0.1. Si dependés del número de versión para saber si estás parcheado, no te alcanza. Firewall y middleware de auth activo, mientras tanto.

27 Aug 2026
OpenCVE →
Crítico

CVE-2026-81096 — ToolUniverse: un dunder por string lookup rompe el sandbox de Python (9.3)

ToolUniverse hasta 1.2.6 expone python_code_executor sin autenticación y en todas las interfaces. El filtro de atributos del sandbox no frenaba un dunder alcanzado mediante string lookup ni a través de un módulo ya permitido, así que llegar a subprocess es cuestión de rodeo, no de exploit exótico. Cualquier cliente con alcance de red ejecuta código como el proceso del server.

1.3.0 mete tres cosas juntas: bearer token, bind a localhost por defecto y validación de atributos más estricta. Si no podés actualizar ya, cortá el endpoint por firewall o desactivá python_code_executor directamente.

27 Aug 2026
OpenCVE →
Crítico

CVE-2026-81098 — Telnyx MCP Server: una request sin credencial completa el initialize y despacha tools (9.3)

Hasta la 6.83.0 inclusive, el transporte HTTP del Telnyx MCP Server no autentica nada: una request sin credencial completa la inicialización y despacha tools. Quien alcance el puerto se lleva las API keys que el server tiene cargadas y la capacidad de ejecutar código.

Actualizar a una versión que fuerce auth, atar el listener a localhost o cerrarlo por firewall, y rotar todo lo que estuvo detrás de ese proceso. Lo último no es opcional: si el puerto estuvo alcanzable, asumí que las credenciales salieron.

27 Aug 2026
OpenCVE →
Crítico

CVE-2026-81094 — mcp-router: el comando serve arranca en todas las interfaces y el token es un flag opcional (9.3)

El CLI de mcp-router antes de 0.6.3 ponía el host del comando serve en la dirección de todas las interfaces sobre un puerto fijo, y exigía token solo si le pasabas el flag correspondiente. Lo grave acá es qué hay del otro lado: mcp-router es un agregador, así que un atacante sin autenticar no toca un solo servidor MCP sino todos los que ese router tenga colgados.

0.6.3 cambia el default a loopback y obliga token cuando exponés una interfaz externa. Si no podés subir de versión, bind manual a 127.0.0.1, token siempre, y regla de firewall sobre el puerto.

27 Aug 2026
OpenCVE →
Alto

CVE-2026-81092 — mcp-go: el transporte HTTP atendía sin mirar el header Host (7.6)

mcp-go de Mark3 Labs antes de 0.56.0 servía requests sin validar el header Host en sus transportes HTTP. Eso habilita DNS rebinding clásico: una página apunta un dominio propio al loopback y desde el browser de la víctima alcanza un servidor MCP local que asumía que solo lo iba a llamar alguien de confianza. No hace falta acceso local, solo una página hostil y un dominio controlado.

0.56.0 agrega http_localhost.go, que rechaza una request atada a loopback si el host que trae no es un nombre de loopback. Como es una librería, el impacto real depende de cuántos servidores tuyos la usen: revisá el go.mod de todo lo que exponga MCP por HTTP.

27 Aug 2026
OpenCVE →
Medio

CVE-2026-81421 — sentry-selfhosted-mcp: el parámetro endpoint de raw_sentry_api es un SSRF con exploit público (6.9)

En sentry-selfhosted-mcp 0.4.0, el componente raw_sentry_api toma el parámetro endpoint tal cual y arma la request saliente con eso. SSRF de manual (CWE-918), explotable en remoto y sin autenticación, con recursos internos y movimiento lateral como premio.

Lo incómodo: hay exploit público y el vendor no respondió a la disclosure temprana. Sin parche del que colgarse, queda desactivar el componente o encerrar el parámetro con una allowlist de destinos y controles de red.

26 Aug 2026
OpenCVE →
🎯

LLM Attacks & Research

Investigación

Amazon Kiro: abrir un workspace hostil alcanza para que el agente escriba su propia ruta de exfiltración

La cadena es corta y no pide nada raro al usuario. El atacante arma un archivo de workspace con contenido de proyecto controlado por él. La víctima lo abre con File → Open Workspace From File —no con «abrir carpeta», ese matiz importa— y manda cualquier mensaje al agente. Las instrucciones del repo influyen el comportamiento del agente, que lee información local sensible, la escribe en la configuración del IDE, y desde ahí las propias capacidades del IDE convierten esa config modificada en tráfico saliente hacia el endpoint del atacante.

El punto no es un bug puntual sino el límite de confianza: el contenido del repositorio se trata como instrucción. Amazon parcheó en Kiro IDE 0.8.140 tras disclosure responsable (el hallazgo era sobre 0.7.45 en Windows). Los investigadores marcan el mismo patrón en Cursor, Claude Desktop, GitHub Copilot CLI, Gemini CLI y Codex.

27 Aug 2026
The Hacker News →
Medio

CVE-2026-55529 — PraisonAI: localhost.evil.example pasa la validación de origin (6.9)

PraisonAI antes de 4.6.58 valida el origin del MCP HTTP Stream con request_origin.startswith(allowed). Un prefijo no es un host: localhost.evil.example matchea la allowlist de localhost y una página hostil ejecuta tools contra tu servidor MCP local sin API key. Pide interacción del usuario (visitar la página), nada más.

Es el mismo error conceptual que el resto de la tanda de hoy —confiar en una comparación de strings donde hacía falta una comparación de host— pero acá el bug se ve a simple vista en una sola línea. Actualizar a 4.6.58, exigir API key y limitar el acceso a hosts confiables.

25 Aug 2026
OpenCVE →
📦

Supply Chain

Medio

CVE-2026-81101 — Airtable MCP CLI: el endpoint se guarda sin validar y el token viaja con cada request (6.9)

En Airtable MCP CLI antes de 0.2.5, ConfigureCommand.execute en src/cli.ts persistía el valor de la opción endpoint en el perfil del usuario sin pasarlo por createSafeUrl. Como el token guardado se adjunta como bearer a toda request que va a ese endpoint, alcanza con convencer a alguien de correr un configure con una URL hostil: el personal access token sale hacia el server del atacante en cada invocación del CLI, indefinidamente.

Es supply chain en el sentido que más duele en tooling de agentes: no hace falta comprometer el paquete, alcanza con envenenar la config que el paquete obedece. Y un comando de setup copiado de un README no despierta sospecha. Actualizar a 0.2.5 y rotar el PAT si alguna vez lo configuraste contra un endpoint que no fuera el oficial.

27 Aug 2026
OpenCVE →
🛡️

Framework CVEs

Critical

CVE-2026-81735 — UI-TARS-desktop: the MCP server listens on every interface and auth is optional (10.0)

startServer.ts, in UI-TARS-desktop's mcp-http-server package, defaulted its listen address to :: when no host was given. The authentication middleware exists, but it is optional and not applied by default. The result: the command and filesystem services sit exposed to anyone who can reach the port, with RCE as the user running the server.

Watch the versioning detail: the package stayed at 1.2.4 even after the patch, so the real boundary is commit c2ad42e3, which changes the default bind to 127.0.0.1. If you rely on a version number to know whether you are patched, that is not enough here. Firewall the port and turn the auth middleware on in the meantime.

27 Aug 2026
OpenCVE →
Critical

CVE-2026-81096 — ToolUniverse: a dunder reached by string lookup breaks the Python sandbox (9.3)

ToolUniverse through 1.2.6 exposes python_code_executor unauthenticated and on every interface. The sandbox's attribute filter did not stop a dunder reached through a string lookup, nor one reached through an already-permitted module, so getting to subprocess is a matter of indirection rather than an exotic exploit. Any network-reachable client runs code as the server process.

1.3.0 ships three things at once: bearer-token auth, localhost binding by default, and stricter attribute validation. If you cannot upgrade now, firewall the endpoint or disable python_code_executor outright.

27 Aug 2026
OpenCVE →
Critical

CVE-2026-81098 — Telnyx MCP Server: a request with no credential completes initialize and dispatches tools (9.3)

Through 6.83.0 inclusive, the Telnyx MCP Server's HTTP transport authenticates nothing: a request without any credential completes initialisation and dispatches tools. Whoever reaches the port walks away with the API keys the server holds, plus code execution.

Upgrade to a version that enforces auth, bind the listener to localhost or close it at the firewall, and rotate everything that sat behind that process. That last part is not optional: if the port was reachable, assume the credentials left.

27 Aug 2026
OpenCVE →
Critical

CVE-2026-81094 — mcp-router: the serve command starts on all interfaces and the token is an optional flag (9.3)

The mcp-router CLI before 0.6.3 defaulted the serve command's host to the all-interfaces address on a fixed port, and required a token only when you passed the matching flag. What makes this bad is what sits behind it: mcp-router is an aggregator, so an unauthenticated attacker does not reach one MCP server but every server that router fronts.

0.6.3 flips the default to loopback and enforces a token when you expose an external interface. If you cannot upgrade, bind manually to 127.0.0.1, always supply the token, and put a firewall rule on the port.

27 Aug 2026
OpenCVE →
High

CVE-2026-81092 — mcp-go: the HTTP transport served requests without looking at the Host header (7.6)

Mark3 Labs' mcp-go before 0.56.0 served requests without validating the Host header on its HTTP transports. That enables classic DNS rebinding: a page points a name it controls at the loopback address and, from the victim's browser, reaches a local MCP server that assumed only trusted callers would ever arrive. No local access needed — just a hostile page and a controlled domain.

0.56.0 adds http_localhost.go, which rejects a loopback-bound request carrying a host that is not a loopback name. Since this is a library, your real exposure depends on how many of your servers pull it in: check the go.mod of anything serving MCP over HTTP.

27 Aug 2026
OpenCVE →
Medium

CVE-2026-81421 — sentry-selfhosted-mcp: the raw_sentry_api endpoint parameter is an SSRF with a public exploit (6.9)

In sentry-selfhosted-mcp 0.4.0, the raw_sentry_api component takes the endpoint parameter as-is and builds the outbound request from it. Textbook SSRF (CWE-918), remotely exploitable without authentication, with internal resources and lateral movement as the payoff.

The awkward part: a public exploit exists and the vendor did not respond to early disclosure. With no patch to lean on, the options are disabling the component or fencing the parameter behind a destination allowlist plus network controls.

26 Aug 2026
OpenCVE →
🎯

LLM Attacks & Research

Research

Amazon Kiro: opening a hostile workspace is enough for the agent to write its own exfiltration path

The chain is short and asks nothing unusual of the user. The attacker builds a workspace file carrying project content they control. The victim opens it via File → Open Workspace From File — not folder-open, and that distinction matters — then sends any message to the agent. The repository instructions influence the agent, which reads sensitive local information, writes it into the IDE configuration, and from there the IDE's own capabilities turn that modified config into outbound traffic to the attacker's endpoint.

The point is not one isolated bug but the trust boundary: repository content is treated as instruction. Amazon fixed it in Kiro IDE 0.8.140 after responsible disclosure (the finding was against 0.7.45 on Windows). Researchers flag the same pattern in Cursor, Claude Desktop, GitHub Copilot CLI, Gemini CLI and Codex.

27 Aug 2026
The Hacker News →
Medium

CVE-2026-55529 — PraisonAI: localhost.evil.example passes the origin check (6.9)

PraisonAI before 4.6.58 validates the MCP HTTP Stream origin with request_origin.startswith(allowed). A prefix is not a host: localhost.evil.example matches the localhost allowlist, and a hostile page runs tools against your local MCP server with no API key. It needs user interaction — visiting the page — and nothing else.

It is the same conceptual mistake as the rest of today's batch — trusting a string comparison where a host comparison was needed — except here the bug is visible in a single line. Upgrade to 4.6.58, require an API key, and restrict access to trusted hosts.

25 Aug 2026
OpenCVE →
📦

Supply Chain

Medium

CVE-2026-81101 — Airtable MCP CLI: the endpoint is stored unvalidated and the token rides along on every request (6.9)

In Airtable MCP CLI before 0.2.5, ConfigureCommand.execute in src/cli.ts persisted the value given to its endpoint option into the user profile without passing it through createSafeUrl. Since the stored token is attached as bearer credentials to every request sent to that endpoint, talking someone into running configure with a hostile URL is enough: the personal access token goes to the attacker's server on every CLI invocation, indefinitely.

This is supply chain in the way that hurts most in agent tooling: you do not need to compromise the package, you only need to poison the config the package obeys. And a setup command copied from a README raises nobody's eyebrow. Upgrade to 0.2.5 and rotate the PAT if you ever pointed it at a non-official endpoint.

27 Aug 2026
OpenCVE →
🛡️

Framework CVEs

Critique

CVE-2026-81735 — UI-TARS-desktop : le serveur MCP écoute sur toutes les interfaces et l'auth est optionnelle (10.0)

startServer.ts, dans le paquet mcp-http-server d'UI-TARS-desktop, fixait son adresse d'écoute à :: en l'absence d'hôte. Le middleware d'authentification existe mais reste optionnel et non appliqué par défaut. Résultat : les services de commandes et de fichiers sont exposés à quiconque atteint le port, avec RCE sous l'utilisateur du serveur.

Attention au versionnage : le paquet est resté en 1.2.4 après le correctif, la vraie limite est le commit c2ad42e3, qui passe le bind par défaut à 127.0.0.1.

27 Aug 2026
OpenCVE →
Critique

CVE-2026-81096 — ToolUniverse : un dunder atteint par string lookup casse le sandbox Python (9.3)

ToolUniverse jusqu'à 1.2.6 expose python_code_executor sans authentification et sur toutes les interfaces. Le filtre d'attributs du sandbox n'arrêtait pas un dunder atteint via string lookup ni via un module déjà autorisé : atteindre subprocess relève du détour, pas de l'exploit exotique.

1.3.0 apporte bearer token, bind localhost par défaut et validation d'attributs renforcée.

27 Aug 2026
OpenCVE →
Critique

CVE-2026-81098 — Telnyx MCP Server : une requête sans identifiant termine l'initialize et exécute des tools (9.3)

Jusqu'à la 6.83.0 incluse, le transport HTTP du Telnyx MCP Server n'authentifie rien : une requête sans identifiant termine l'initialisation et exécute des tools. Qui atteint le port récupère les clés API du serveur et l'exécution de code.

Mettre à jour, lier le listener à localhost ou fermer le port, puis faire tourner toutes les credentials concernées.

27 Aug 2026
OpenCVE →
Critique

CVE-2026-81094 — mcp-router : la commande serve démarre sur toutes les interfaces et le token est un flag optionnel (9.3)

Le CLI mcp-router avant 0.6.3 fixait l'hôte de la commande serve à l'adresse toutes-interfaces sur un port fixe, et n'exigeait un token qu'avec le flag correspondant. Le problème : mcp-router est un agrégateur, un attaquant non authentifié atteint donc tous les serveurs MCP derrière lui.

0.6.3 passe le défaut en loopback et impose le token sur interface externe.

27 Aug 2026
OpenCVE →
Élevé

CVE-2026-81092 — mcp-go : le transport HTTP servait les requêtes sans vérifier l'en-tête Host (7.6)

mcp-go de Mark3 Labs avant 0.56.0 servait les requêtes sans valider l'en-tête Host sur ses transports HTTP, ce qui autorise le DNS rebinding classique : une page pointe un nom qu'elle contrôle vers le loopback et atteint, depuis le navigateur de la victime, un serveur MCP local.

0.56.0 ajoute http_localhost.go. Comme il s'agit d'une librairie, vérifiez le go.mod de tout ce qui sert MCP en HTTP.

27 Aug 2026
OpenCVE →
Moyen

CVE-2026-81421 — sentry-selfhosted-mcp : le paramètre endpoint de raw_sentry_api est une SSRF avec exploit public (6.9)

Dans sentry-selfhosted-mcp 0.4.0, le composant raw_sentry_api reprend le paramètre endpoint tel quel pour construire la requête sortante. SSRF classique (CWE-918), exploitable à distance sans authentification.

Un exploit public existe et le vendor n'a pas répondu à la divulgation : désactiver le composant ou restreindre le paramètre par allowlist.

26 Aug 2026
OpenCVE →
🎯

LLM Attacks & Research

Recherche

Amazon Kiro : ouvrir un workspace hostile suffit pour que l'agent écrive sa propre voie d'exfiltration

La chaîne est courte : l'attaquant prépare un fichier de workspace au contenu qu'il contrôle, la victime l'ouvre via File → Open Workspace From File puis envoie un message quelconque à l'agent. Les instructions du dépôt influencent l'agent, qui lit des informations locales sensibles, les écrit dans la configuration de l'IDE, et les capacités de l'IDE transforment cette config en trafic sortant vers l'attaquant.

Le fond du problème est la frontière de confiance : le contenu du dépôt est traité comme instruction. Corrigé dans Kiro IDE 0.8.140. Même motif signalé sur Cursor, Claude Desktop, GitHub Copilot CLI, Gemini CLI et Codex.

27 Aug 2026
The Hacker News →
Moyen

CVE-2026-55529 — PraisonAI : localhost.evil.example passe la validation d'origine (6.9)

PraisonAI avant 4.6.58 valide l'origine du MCP HTTP Stream avec request_origin.startswith(allowed). Un préfixe n'est pas un hôte : localhost.evil.example correspond à l'allowlist localhost, et une page hostile exécute des tools sur votre serveur MCP local sans clé API.

Même erreur conceptuelle que le reste de la salve du jour. Passer en 4.6.58 et exiger une clé API.

25 Aug 2026
OpenCVE →
📦

Supply Chain

Moyen

CVE-2026-81101 — Airtable MCP CLI : l'endpoint est stocké sans validation et le token part à chaque requête (6.9)

Dans Airtable MCP CLI avant 0.2.5, ConfigureCommand.execute dans src/cli.ts enregistrait la valeur de l'option endpoint dans le profil utilisateur sans la passer par createSafeUrl. Le token stocké étant joint en bearer à chaque requête vers cet endpoint, il suffit de faire exécuter un configure avec une URL hostile pour que le PAT parte vers le serveur de l'attaquant à chaque appel du CLI.

Supply chain sous sa forme la plus gênante pour l'outillage d'agents : inutile de compromettre le paquet, il suffit d'empoisonner la config qu'il applique. Passer en 0.2.5 et faire tourner le PAT.

27 Aug 2026
OpenCVE →