Los worms de prompt injection ya son reales — y se están propagando
Daniel Miessler acaba de publicar un proof-of-concept de un worm de prompt injection: una llamada a un LLM escribe una instrucción maliciosa en un documento, una segunda lectura la atrapa, y el ciclo se repite. El worm no necesita un virus ni un backdoor — se monta sobre los mismos datos que la app ya está guardando y leyendo.
El detalle clave es la extensibilidad. El payload es un string en el documento; la siguiente invocación del LLM lo trata como parte de su contexto y lo sigue. No hay una nueva clase de exploit, no hay zero-day. Es lo que pasa cuando le dejás pasar texto controlado por el usuario a un LLM sin una frontera estricta entre instrucciones y datos. Te queda un worm que se copia a sí mismo a través de los documentos que toca.
Esto no es un ejercicio de paper. Es un recordatorio de que toda app que escribe en una base de datos, la lee de vuelta por un LLM, y le deja al modelo actuar sobre lo que encuentra es una superficie de infección potencial. La solución es arquitectural: separá prompts de datos, validá instrucciones, y tratá cualquier campo controlado por el usuario como input no confiable. La attack surface es el pipeline de datos mismo.
Por qué nos importa: los side hustles corriendo sobre LLMs — el bot de customer service del primo, la app de pedidos de la tía — son todos solo data fluyendo por un modelo, y ese flujo ahora es un vector.
“El worm no necesita un backdoor — se monta sobre los mismos datos que la app ya está guardando y leyendo.”