Ha caído un aviso de severidad máxima contra ash_ai, la extensión de IA para el framework Ash de Elixir. El defecto está en cómo se convierte un prompt en texto: el contenido del prompt se pasa a través de EEx, el motor de plantillas de Elixir, y se evalúa. Todo lo que esté dentro de los marcadores de interpolación de EEx no es, por tanto, datos: es código fuente de Elixir, ejecutado en el servidor.
Por qué obtiene un 10.0
Porque la ruta vulnerable es la documentada. El patrón afectado es la forma habitual en que se escribe la acción de prompt de la biblioteca, de modo que una implementación estándar queda expuesta sin hacer nada inusual. Si cualquier parte del prompt se construye a partir de entrada del usuario —un mensaje de chat, una consulta de búsqueda, un ticket de soporte, un nombre de archivo—, esa entrada llega a un evaluador de código. El resultado es ejecución remota de código sin autenticación, sin privilegios requeridos.
El detalle que derrota todas las defensas de la capa de IA
La evaluación ocurre mientras se construye la cadena del prompt — antes de que la solicitud se envíe a cualquier modelo. Los filtros de prompt injection, el endurecimiento del prompt del sistema, la moderación de salidas, las listas de अनुमति de llamadas a herramientas y las barreras de aprobación humana operan en el límite del modelo o después de él. Todas ellas quedan aguas abajo de la línea vulnerable. Esto no es un error de prompt injection que pudiera detectar un control de alineamiento; es una inyección de plantillas que por casualidad vive dentro de un prompt, y la pila de IA que la rodea es irrelevante.
Lo que falla en el encuadre habitual
"Corregido en 1.0.0" suena como una instrucción de actualización rutinaria. No lo es. 1.0.0 es una versión mayor cuyas notas comienzan con un cambio incompatible — una dependencia pasó a ser opcional — y no existe una corrección retroportada en la línea anterior. Así que la remediación para un CVSS 10.0 es una migración a una versión mayor, exactamente el tipo de actualización que un equipo programa en lugar de aplicar de inmediato. La gravedad del aviso dice esta noche; la forma de la versión dice el próximo sprint.
El patrón que conviene nombrar
Los motores de plantillas dentro de la construcción de prompts se están volviendo comunes, porque los prompts son cadenas con variables y un motor de plantillas es la herramienta obvia. La trampa es que los motores de plantillas de uso general se diseñaron para renderizar marcado generado por código para autores de confianza, no para interpolar entrada no confiable en tiempo de ejecución. En cualquier lugar donde texto de usuario fluya hacia una plantilla que admita evaluación de expresiones, existe la misma clase de error, independientemente del lenguaje.
