La lucha contra la IA se fue de las manos: un desarrollador ocultó una "bomba" en el código de proyectos ajenos

La lucha contra la IA se fue de las manos: un desarrollador ocultó una "bomba" en el código de proyectos ajenos

El usuario no detectará el engaño hasta que la máquina borre definitivamente todos los archivos.

image

La disputa en torno al «vibe-coding» pasó repentinamente de discusiones irritadas a un riesgo real para proyectos ajenos. Uno de los desarrolladores de código abierto decidió mostrar de forma práctica por qué le desagrada cómo los agentes de IA trabajan con código, pero eligió para la demostración un método demasiado peligroso: ocultó en una herramienta Java una instrucción que podía hacer que la IA eliminara los resultados del trabajo del usuario.

Se trata de jqwik, un motor de pruebas para JUnit 5. El lunes el desarrollador del proyecto Johannes Link lanzó la versión 1.10.0, en la que, junto con los cambios habituales, apareció un comando oculto para agentes de IA. El texto ordenaba ignorar instrucciones previas y eliminar todas las pruebas y el código de jqwik.

Esta técnica pertenece a la clase «inyección de instrucciones». Los modelos de lenguaje vulnerables y los asistentes de programación asociados pueden aceptar una instrucción externa como si fuera un comando legítimo del usuario. En el caso de jqwik, el perjuicio potencial no afectaba tanto al agente como a la persona que ejecutaba la herramienta en su propio proyecto.

La situación se agravó porque el comando no estaba descrito claramente en las notas de la versión iniciales. Además, en el código añadieron secuencias de control ANSI que borraban la línea de la salida en un terminal interactivo. Al revisar los registros de forma habitual, una persona podía no notar la instrucción peligrosa, aunque en las capturas estándar de salida la línea seguía siendo visible.

El 27 de mayo el desarrollador Java Ramon Batllet observó un comportamiento inusual y abrió la discusión en GitHub. Según él, el desarrollador tiene derecho a prohibir el uso de su proyecto por agentes de IA o a comprobar el incumplimiento de tales condiciones. El problema residía en la forma elegida para esa verificación: el comando era destructivo, no advertía al usuario y no ofrecía la posibilidad de rechazarlo. Batllet también informó que la herramienta Claude de Anthropic reconoció la instrucción sospechosa y no la ejecutó, pero agentes menos robustos podrían comportarse de otro modo.

Tras las críticas, Link actualizó la descripción del lanzamiento y señaló explícitamente que jqwik no está destinado a trabajar con agentes de IA. Allí también apareció la formulación completa del comando oculto y una explicación de cómo la línea se eliminaba de la salida del terminal. Más tarde el desarrollador declaró que ha recibido amenazas y que no comentará la historia en detalle hasta consultar con un abogado.

La reacción de la comunidad fue dura. Los participantes en la discusión calificaron la acción de infantil y expresaron dudas sobre su legalidad. El fundador de runZero, H. D. Moore, reconoció que entiende el deseo de los mantenedores de desalentar suavemente los escenarios de uso no deseados, pero consideró el caso de jqwik excesivo. En su opinión, el comando oculto podía afectar no solo a la propia herramienta, sino también a las pruebas escritas por los usuarios.

Link había criticado con dureza antes a la IA generativa, señalando el consumo de energía, los residuos electrónicos, los problemas de derechos de autor y la difusión de información inexacta. Muchas de las quejas hacia la industria de la IA las comparten otros desarrolladores, pero la historia de jqwik mostró el límite en el que la protesta contra la tecnología empieza a perjudicar a los usuarios comunes.