Vulnerabilidad llms.txt: cómo los agentes de IA instalan automáticamente código malicioso a través de archivos de documentación
El jueves 27 de agostoArs Technica publicó una investigaciónEso debería hacer que cualquier desarrollador que utilice agentes de codificación de IA reconsidere su seguridad. Investigadores de una startup sigilosa israelí escanearon 6.214 dominios pertenecientes a empresas Fortune 500, contratistas de defensa y grandes empresas tecnológicas, y encontraron 120 archivos llms.txt que hacen que los agentes de IA instalen automáticamente paquetes inexistentes de PyPI y npm.
El problema es simple y aterrador: llms.txt es esencialmente "robots.txt para IA", un archivo de mapa del sitio con rebajas que ayuda a los agentes a comprender rápidamente la estructura de la documentación. Pero la especificación no incluye autenticación, firmas ni controles de integridad. Si dicho archivo contiene pip install non-existent-package o npm install non-existent-package y el agente tiene permiso para ejecutar comandos, simplemente instalará lo que esté escrito allí.
como funciona
Los investigadores encontraron 8265 archivos llms.txt y llms-full.txt (muchos sitios alojan ambos). En 120 de ellos (en 120 dominios diferentes) había referencias a paquetes o dominios que no existen en los registros. Un atacante sólo necesita registrar dicho nombre y cargar código malicioso.
Para verificar el ataque, los propios investigadores registraron varios nombres "libres" y colocaron paquetes inofensivos que simplemente hacen ping a su servidor con "Empecé". Al cabo de una hora, recibieron una respuesta de una empresa Fortune 500. Con el tiempo, llegaron docenas de respuestas más, de otros gigantes y nuevas empresas. La telemetría del proceso mostró exactamente quién instaló los paquetes:Claude Code, OpenAI Codex y Hermes de Nous Research.

El caso más desagradable - clerk.com
En el sitio legítimo clerk.com, el archivo llms.txt contenía npx clerk-next-fix-auth-protection. A diferencia de un npm install normal, npx puede recuperar un paquete en el caché de npm y ejecutar su binario sin agregarlo al manifiesto de dependencia del proyecto. Alguien logró reclamar este nombre gratuito y cargar malware real. El empleado solucionó el problema, pero el patrón ya está en producción.
Por qué esto no es sólo un "error de modelo"
Esto no es una alucinación ni un escape al arenero. El archivo se encuentra en el dominio oficial de la empresa, servido a través de HTTPS, en un formato estandarizado diseñado para el consumo de IA. El agente no tiene motivos para dudarlo: el expedienteesla autoridad. El problema es que el estándar llms.txt (propuesto por Jeremy Howard de Answer.AI en septiembre de 2024) no contiene ninguna disposición de seguridad: ni firmas, ni verificación de origen, ni verificación de paquetes.
La cadena de confianza es transitiva: llms.txt no tiene que estar en el propio sitio de Fortune 500; puede estar en los documentos de un socio, la referencia del SDK de un proveedor o la guía de configuración de un proyecto comunitario. Si el agente confía en ese tercero y ese tercero señala un paquete no registrado, la cadena funciona de la misma manera.
Que hacer ahora mismo
- Auditoría.Verifique su
llms.txtyllms-full.txt. Asegúrese de que todos los paquetes, dominios y URL mencionados existan, estén bajo su control y tengan un responsable identificado. Elimine las referencias a dependencias que no pueda explicar de memoria. - Proxy entre agentes y registros.Bloquee paquetes nuevos (los paquetes descuidados son nuevos por definición), aplique un tiempo de reutilización de 24 a 72 horas después del primer lanzamiento de cualquier dependencia, verifique
provenance(SLSA/Sigstore) antes de la instalación. - No proporcione a los agentes
--yolo,--dangerously-skip-permissions,--trust-all-tools.Estas banderas existen para que el desarrollador asuma la responsabilidad. Si un agente instala paquetes sin su confirmación, le habrá entregado las claves de su infraestructura.
El resultado final
La carrera por hacer que los sitios web sean legibles para los agentes acaba de chocar con la carrera por explotar la cadena de suministro de software. Esto no es culpa de un modelo o de un proveedor: es un defecto de diseño en un estándar que nadie consideraba código ejecutable. Hasta que la industria imponga la validación de lo que los agentes leen en la web, cada llms.txt incorrecto es un posible punto de entrada a su red.

¿Quiere probar la seguridad de sus flujos de trabajo de IA? NeuralSpace le permite ejecutar agentes de prueba y generación de código en un entorno aislado:prueba el chatomodo de código.