Una clave pública de Sentry permite secuestrar agentes de IA como Claude Code, Cursor y Codex

Un error falso enviado a través de la clave pública de Sentry puede transformar agentes de IA de programación en herramientas para ejecutar código malicioso, poniendo en riesgo entornos de desarrollo y credenciales sensibles en grandes empresas.

El pasado 17 de junio, el equipo de Threat Labs de Tenet Security, una startup especializada en seguridad para agentes de inteligencia artificial, reveló un ataque al que denominaron agentjacking. Esta acción maliciosa aprovecha un elemento aparentemente inofensivo y ampliamente utilizado: la clave pública DSN de Sentry, un servicio de monitorización de errores integrado en miles de aplicaciones.

El ataque se basa en la explotación de la forma en la que agentes de IA dedicados a la codificación interactúan con los informes de errores brindados por Sentry. Con un solo informe de error falso, un atacante puede convertir a uno de estos agentes en un motor capaz de ejecutar comandos en el equipo del desarrollador. Pese a la gravedad, este método no implica el intercambio de malware ni el robo de contraseñas: el propio agente es quien ejecuta la orden maliciosa.

El doble peligro de la clave DSN y la confianza del agente

La clave DSN (Data Source Name) de Sentry fue diseñada para ser un identificador público y de solo escritura, lo que permite a las aplicaciones reportar errores sin exponer detalles delicados del proyecto. Esta característica ha sido considerada segura, ya que tradicionalmente los informes de error eran revisados por humanos, quienes podían discernir y filtrar información sospechosa.

Patrocinado

Sin embargo, cuando un agente de IA lee estos datos, su incapacidad para diferenciar entre datos y órdenes representa una vulnerabilidad crítica. Cualquier persona que descubra una clave DSN – a través de la inspección de JavaScript en una web, búsquedas en GitHub o consultas en motores especializados como Censys – puede enviar eventos especialmente diseñados que el agente interpreta como instrucciones legítimas a seguir.

Esta combinación de un credencial público y la total confianza que los agentes depositan en los datos recibidos, crea un escenario peligroso donde el atacante tiene la capacidad de inyectar código para ser ejecutado sin necesidad de infringir directamente la infraestructura objetivo.

Desarrollo del ataque: pasos ordinarios con consecuencias extraordinarias

El ataque se despliega siguiendo un flujo que, en cada etapa, parece completamente normal, lo que dificulta su detección:

1. Localización de la clave DSN

El atacante identifica la clave DSN pública objetivo a través de búsquedas en código fuente público o herramientas de reconocimiento pasivo, sabiendo que esta clave suele estar presente en el JavaScript de numerosos sitios web en producción.

2. Envío de un evento falso

Aunque no se requiere ningún método de autenticación más allá de la DSN, el atacante puede enviar un evento fabricado con un mensaje y metadatos totalmente controlados, que Sentry acepta y registra junto a errores legítimos.

3. Camuflaje del comando malicioso

El mensaje contiene texto en formato markdown que, al ser interpretado por el protocolo Model Context Protocol (MCP) que comunica a los agentes con servicios externos, simula una resolución oficial de error. En esta sección falsificada se incrusta un comando npx que el atacante desea ejecutar.

4. Manipulación del agente IA

Cuando un desarrollador solicita al agente que resuelva problemas pendientes en Sentry, el agente procesa el evento inyectado como una directriz válida, orientando su acción hacia la ejecución del comando sugerido.

5. Ejecución del comando

El agente ejecuta el comando con los mismos privilegios del desarrollador y en la máquina local. En pruebas controladas, Tenet utilizó paquetes públicos que se identificaban como análisis de seguridad, limitando el alcance de la demostración pero evidenciando la viabilidad del ataque.

6. Acceso a credenciales y secretos

Una vez en ejecución, el código malicioso pudo acceder a variables de entorno, archivos de configuración en la nube y almacenes de credenciales, enviando señales a un servidor controlado por Tenet y demostrando la exposición real de claves de AWS, tokens de GitHub y credenciales Git, entre otros.

Impacto a gran escala y alcance en entornos corporativos

La investigación de Tenet detectó 2.388 organizaciones con claves DSN vulnerables accesibles por reconocimiento pasivo, incluyendo 71 en la lista Tranco de sitios más visitados. Más alarmante es el hecho de que Claude Code, Cursor y Codex, algunos de los agentes IA más populares, actuaron sobre los errores inyectados con una tasa de éxito del 85% en la validación controlada.

Este ataque fue probado en una empresa tecnológica Fortune 100 valorada en 250.000 millones de dólares, así como en pipelines de integración continua aislados, máquinas gestionadas con WSL y incluso sistemas macOS y Windows bajo VPN corporativa. En un entorno capturado con Claude Code, se recuperó una clave activa de AWS y enlaces a otros agentes conectados, evidenciando que una única brecha puede propagar la intrusión a múltiples máquinas y procesos internos.

El peligro real radica en que los atacantes pueden obtener acceso directo a credenciales críticas para el despliegue y gestión de infraestructura, contraseñas de repositorios privados y tokens de plataformas, vulnerando medidas que los equipos de seguridad destinan a proteger esos activos.

Dificultades para detectar y mitigar el ataque

El principal desafío del agentjacking es que cada paso se realiza con autorización legítima: el agresor nunca accede directamente a la infraestructura interna, el desarrollador no aprueba código extraño y el agente ejecuta estrictamente las tareas solicitadas.

Esta denominada Cadena de Intención Autorizada dificulta la detección por parte de herramientas tradicionales como EDR, WAF, sistemas de gestión de accesos (IAM), VPN y firewalls, que no generan alertas ante acciones que parecerían normales y autorizadas.

Incluso medidas basadas en capas de prompts o instrucciones para ignorar datos no confiables por parte del agente no fueron efectivas, evidenciando un límite actual en la capacidad de los modelos para discernir comandos maliciosos embebidos en la salida de herramientas externas.

Responsabilidades y respuestas: Sentry, proveedores de modelos y runtimes

El ataque sucede en la intersección de tres niveles técnicos: la plataforma Sentry que genera los datos, los proveedores de modelos que desarrollan los agentes IA y el entorno de ejecución (runtime) donde se deciden las acciones finales.

Capa de defensa Efectividad Comentario
Plataforma Sentry Limitada Filtro de contenido bloquea cadenas específicas pero el punto de ingesta permanece abierto para operaciones legítimas.
Proveedores de modelos Parcial Agentes ejecutan comandos pese a instrucciones internas para descartar datos no confiables.
Entorno de ejecución Más directo Puede inspeccionar todas las acciones antes de ejecutarlas y filtrar comandos provenientes de datos externos.
Controles de red y endpoint Nulo No detectan nada fuera de lo autorizado y por ello no generan alertas.

Sentry reconoció la vulnerabilidad tras la divulgación el 3 de junio de 2026 pero se negó a modificar el origen del problema. Argumentó que esta clase de ataques es «técnicamente indefendible» a nivel plataforma y que la responsabilidad recae en las capas intermedias. Mientras, aplicó un filtro global para bloquear la cadena específica del caso demostrativo, sin cerrar la vía de explotación.

En consecuencia, la solución más viable recae en el entorno de ejecución del agente, el espacio donde cada acción es aprobada o rechazada antes de llevarse a cabo. Sin embargo, no hay consenso sobre cuál entidad debe asumir la responsabilidad de implementar medidas efectivas.

Un problema que trasciende a Sentry y su entorno

La vulnerabilidad puesta en evidencia no se limita exclusivamente a Sentry ni a su protocolo DSN. Cualquier integración basada en el Model Context Protocol (MCP) que devuelva datos externos a un agente presenta un riesgo similar. A medida que más herramientas se conecten mediante MCP, la superficie de ataque crecerá y el vector de inyección se extenderá.

Las organizaciones deben asumir que un agente que procesa rápidamente una larga lista de errores puede convertirse en un vector para ejecutar cualquier cosa que un servicio de confianza le proporcione. La seguridad de la cadena de suministro de software debe extenderse también a cada integración MCP, tratándola con el mismo rigor que un componente de terceros o una dependencia crítica.

Como medida inmediata, Tenet ha liberado públicamente configuraciones llamadas agent-jackstop para endurecer agentes como Cursor y Claude Code contra este tipo de inyecciones, ofreciendo un punto de partida para equipos que buscan mitigar este peligro mientras se define una solución a largo plazo.

Esta investigación ha marcado un antes y un después en la comprensión de cómo la confianza ciega en datos externos puede volverse una puerta trasera en entornos de desarrollo modernos, elevando la necesidad de fortalecer la seguridad alrededor de los agentes de inteligencia artificial y sus entornos de ejecución.

Add a Comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Patrocinado