Hackeando el agente de IA de PewDiePie usando un sitio web malicioso de CoComelon (y cómo ayudar a protegerlo)

@theonejvo
INGLÉShace 1 mes · 01 jun 2026
508K
175
3
0
17

TL;DR

Un investigador de seguridad detalla una vulnerabilidad crítica de inyección de comandos en Odysseus, la plataforma de IA de PewDiePie, que permitía el control total del servidor. El proyecto ya ha corregido los fallos, subrayando la necesidad de una seguridad robusta en el creciente ecosistema de IA autohospedada.

Durante el último año, @pewdiepie se ha convertido en uno de los defensores más visibles de la computación privada y autoalojada, y ha sido un auténtico placer verlo.

Lo que comenzó a finales de 2025 como un experimento entretenido —un equipo casero con GPUs modificadas ejecutando modelos de código abierto, chatbots votando en un "consejo", y poder de cómputo sobrante donado a la investigación de plegamiento de proteínas— maduró a lo largo de aproximadamente doce meses hasta convertirse en algo con una misión clara.

El 31 de mayo de 2026 llegó como Odysseus, un espacio de trabajo de IA gratuito, de código abierto y autoalojado que presentó sin rodeos como un desafío al modelo de suscripción: priorizando lo local, priorizando la privacidad, sin telemetría, y con tus datos permaneciendo en tu propio hardware en lugar de fluir hacia un puñado de grandes empresas.

Para alguien con su alcance, poner la inferencia local frente a una audiencia general y no técnica es el tipo de cosa que el mundo de la privacidad ha deseado durante años, y estoy apoyándolo.

También soy la persona que, probando mi propia implementación autorizada, encontró una forma de tomar el control de uno de estos servidores con un solo clic. Ambas cosas no están en contradicción. Un software tan ambicioso, lanzado tan rápido, en una categoría tan nueva, es exactamente donde viven los bugs de seguridad interesantes, y encontrarlos temprano es cómo el proyecto logra ser confiable después.

Así que, con espíritu de ayuda, aquí está la cadena completa, explicada desde cero, junto con lo que dice sobre el momento que estamos construyendo.

una puerta sin cerradura, y un puerto que solo parecía inofensivo

Odysseus puede delegar trabajos pesados a máquinas GPU remotas a las que accede mediante SSH, la forma estándar en que un ordenador ejecuta comandos en otro.

Por lo tanto, algunos de sus endpoints internos pueden tocar un shell de comandos —la línea de comandos en bruto donde, si puedes acceder a ella, puedes hacer que la máquina haga casi cualquier cosa.

Sensatamente, casi todos esos endpoints comienzan verificando que quien llama sea un administrador.

La excepción es un endpoint pequeño y silencioso cuya función es listar qué paquetes de Python están instalados en un servidor remoto, y esa excepción es donde todo se desmorona.

El primer problema es que este endpoint nunca recibe la información que necesitaría para identificar a quien lo llama, por lo que no realiza ninguna verificación de administrador y no puede hacerlo, ni siquiera en principio.

Lo único que lo protege es la regla general de la aplicación de que debes haber iniciado sesión, lo que significa que cualquier cuenta —incluyendo una que un desconocido registró hace un minuto— puede acceder a una puerta que toca el shell y que todos los endpoints hermanos protegen cuidadosamente.

Jamieson O'Reilly - inline image

La causa raíz estructural: un manejador que no puede ver quién llama no puede hacer cumplir quién está autorizado, como se ve a continuación.

Jamieson O'Reilly - inline image

Por sí solo, eso podría ser superable, pero hay un segundo problema en cómo este endpoint hace su trabajo real, y es el corazón de todo el ataque.

Para averiguar qué paquetes tiene instalados una máquina remota, el programa escribe una instrucción como una sola línea de texto plano y le pasa esa línea a una parte del sistema llamada el shell, cuyo trabajo es leer la línea y ejecutarla.

La forma más fácil de imaginar el shell es como un asistente que sigue instrucciones escritas de manera completamente literal, donde algunos signos de puntuación tienen un significado especial.

El importante aquí es el punto y coma, que el shell interpreta como "esa instrucción ha terminado, ahora haz lo siguiente", por lo que una sola línea con puntos y comas se ejecuta como varios comandos en secuencia.

Jamieson O'Reilly - inline image
Jamieson O'Reilly - inline image

Debido a esto, los programas cuidadosos toman cualquier cosa que una persona haya escrito y la envuelven entre comillas antes de pasarla al shell —la forma de indicarle al shell que trate esos caracteres como texto ordinario sin poder para ejecutarse como comandos.

El desarrollador hizo esto correctamente para el nombre del servidor y para el comando que se enviaba, por lo que esas entradas eran seguras.

Sin embargo, el número de puerto se colocó en la línea sin protección, sin comillas, basándose en la suposición aparentemente razonable de que un puerto siempre es solo un número y un número no puede hacer daño. (La ruta del entorno virtual se concatenó de la misma manera sin comillas, por la misma razón.)

El fallo en la suposición es que el puerto no tiene que ser un número. Llega como texto plano extraído directamente de la dirección web, y quien hace la solicitud decide lo que dice.

Así que, en lugar de 22, un atacante escribe 22; id; hostname #.

El shell lee la primera parte, intenta conectarse y falla inofensivamente, luego llega al primer punto y coma y obedientemente ejecuta los dos comandos del atacante, mientras que el # al final le indica que ignore el texto sobrante que debería seguir.

Jamieson O'Reilly - inline image

Un punto y coma convierte "listar paquetes en una máquina remota" en "ejecutar mis comandos en esta máquina".

Para llegar a él no se necesita nada más exótico que una sesión iniciada y una dirección web manipulada:

Jamieson O'Reilly - inline image

La solicitud devuelve HTTP 200 con el JSON normal de paquetes —mientras que los comandos inyectados se ejecutan en el lado del servidor.

Los comandos que introduje eran sondas inofensivas, y cuando su salida regresó nombrando la cuenta de servicio del propio servidor, confirmó que mis instrucciones se habían ejecutado en la máquina misma.

Jamieson O'Reilly - inline image

Junta los dos fallos y la imagen local cabe en una frase: cualquier usuario que haya iniciado sesión puede ejecutar comandos de su elección en el servidor.

El riesgo de escala se ve agudizado por la misma característica que hace a Odysseus emocionante.

Si un creador con cien millones de suscriptores consigue incorporar a una audiencia grande y no técnica al autoalojamiento, el resultado son miles de instancias similares, configuradas de forma similar y expuestas de forma similar, lo que es un monocultivo, y los monocultivos son lo que aman los gusanos informáticos.

@ashnichrist lo expresó bien.

convirtiéndolo en un solo clic

Un bug que "cualquier usuario que haya iniciado sesión" puede activar aún suena como si necesitara un insider malicioso, y el siguiente paso es lo que elimina incluso ese requisito, porque hace que el propio navegador de la víctima ejecute el ataque.

La técnica es la falsificación de petición en sitios cruzados (CSRF), y se aprovecha de un hábito silencioso del navegador.

Una vez que inicias sesión en un sitio, tu navegador almacena un pequeño token y luego lo adjunta automáticamente a las solicitudes dirigidas a ese sitio, basándose puramente en el destino de la solicitud, sin importar qué página la haya iniciado.

Jamieson O'Reilly - inline image

Odysseus configuró ese token con la política SameSite=Lax, que es el valor predeterminado razonable y bloquea que el token viaje en solicitudes de fondo sigilosas —sin embargo, deliberadamente aún lo envía en una navegación de nivel superior, lo que significa un clic ordinario que mueve toda tu pestaña a algún lugar.

Dado que el endpoint vulnerable responde a un enlace simple, no realiza ninguna verificación de dónde se originó una solicitud y no utiliza ningún token anti-falsificación, un atacante solo tiene que alojar una página con un botón atractivo.

Para la demostración, construí exactamente eso: una página alegre, amigable para niños y, lo más importante, una página tributo a CoComelon precisa con la tradición —colores de canciones infantiles, Comic Sans, un gran botón de "reproducir".

Jamieson O'Reilly - inline image

El botón no es un enlace a una canción. Su manejador de clic abre el objetivo real en una pequeña ventana emergente desechable, por lo que la solicitud maliciosa ocurre como una navegación de nivel superior —llevando la cookie de sesión SameSite=Lax— sin robar el foco, y luego se cierra automáticamente un momento después. La dirección que abre es simplemente el endpoint de paquetes con el comando introducido de contrabando en el "puerto":

Jamieson O'Reilly - inline image

Mientras ese clic aterriza, la página señuelo monta un espectáculo para la cámara: el arte de CoComelon parpadea en la pantalla como un fogonazo, y una terminal se escribe a sí misma narrando cada paso de la toma de control. (El texto de la terminal es una narración escenificada para la demostración; la ejecución real es la solicitud silenciosa que acaba de hacer la ventana emergente.)

Jamieson O'Reilly - inline image

Para hacer el impacto concreto, ese solo clic hizo tres cosas: reescribió la interfaz servida para una desfiguración visual obvia (una superposición de pantalla completa "🍉 tu Odysseus ha sido CoComelon-d 🍉", iconos de sandía, la aplicación renombrada), leyó todo lo que el usuario del servicio podía leer, y —lo más duradero— escribió una cuenta de administrador oculta directamente en el auth.json de la aplicación.

Jamieson O'Reilly - inline image

El aguijón: un reinicio limpia el desorden obvio pero mantiene la cuenta del atacante.

Aquí hay una demostración en vivo.

por qué este es el peor tipo de bug en una herramienta agentica

La razón por la que un compromiso de una sola instancia debería preocuparte en 2026 es que rara vez es donde se detienen estas cosas, y el gusano que definió el año muestra por qué.

Shai-Hulud, el gusano npm autopropagante visto por primera vez en septiembre de 2025 y que ha regresado en oleadas más grandes desde entonces, ejecuta un bucle brutalmente simple: un script malicioso en el momento de la instalación se ejecuta en el momento en que se instala un paquete, escanea la máquina en busca de secretos como tokens de npm y GitHub, claves SSH y credenciales en la nube, y luego usa esas credenciales robadas para publicar versiones con puerta trasera de otros paquetes de la víctima, por lo que cada nueva instalación se convierte en el siguiente punto de lanzamiento sin más esfuerzo por parte del atacante.

La lección que vale la pena recordar es que el trabajo más difícil de un gusano es cosechar credenciales y encontrar una forma de llegar a la siguiente máquina.

Un asistente de IA agentico le entrega a un gusano

ambas

cosas gratis, porque mantener secretos poderosos y comunicarse con otras máquinas es todo su propósito.

El solo clic contra Odysseus produjo mucho más que ejecución de código. Entregó un cofre previamente recolectado de claves API almacenadas, la base de datos, la configuración y el acceso SSH que la herramienta usa para iniciar sesión en los servidores GPU remotos que gestiona. Ese es exactamente el combustible del que se alimenta un ataque autopropagante, sentado en un solo lugar con la etiqueta hacia afuera, y el manual para usarlo ya existe en la naturaleza.

Jamieson O'Reilly - inline image

lo que todo esto significa

Lo que más me llama la atención es que el bug que realmente tomó el servidor es antiguo. La inyección de comandos y la falsificación de peticiones tienen soluciones de libro de texto que un desarrollador en 2005 reconocería, y estaban viviendo dentro de uno de los software de IA de consumo más avanzados del momento —que es el patrón en toda la industria este año, donde las vulnerabilidades de IA más destacadas resultan ser fallos clásicos sentados dentro de herramientas nuevas y brillantes.

La frontera dejó esos fundamentos en pleno vigor, luego apiló una capa poderosa, rápida y a menudo demasiado confiada sobre ellos, y conectó esa capa a todo lo que posees.

Jamieson O'Reilly - inline image

el timbre que aún no estaba instalado

Hay un detalle más del que vale la pena aprender, porque es la parte que menos tiene que ver con el código.

Cuando fui a reportar esto por primera vez, había una política de seguridad en el repositorio —una bien pensada, con una guía de implementación sensata.

Pero su sección de reporte indicaba a los posibles informantes que usaran "GitHub security advisories if available", y al principio ese canal privado simplemente no estaba abierto.

Lo más sensible que un desconocido podía encontrar sobre el proyecto no tenía un lugar privado donde aterrizar. Esa brecha se ha cerrado desde entonces —la cadena de inyección de comandos ahora está rastreada por un aviso crítico, y las correcciones están fusionadas— pero la ausencia inicial es la señal reveladora.

Afortunadamente, pude hablar con uno de los mantenedores, quien habilitó la función de avisos —y desde entonces he presentado varias otras correcciones.

Jamieson O'Reilly - inline image

Pero todo eso aparte... es una señal de los tiempos.

Los proyectos pasan ahora de ser un pasatiempo en una GPU casera a una audiencia de cien millones de personas en el lapso de un solo anuncio, y el andamiaje de seguridad —una bandeja de entrada privada para malas noticias, un flujo de trabajo de avisos, el hábito de tratar la salida del modelo como hostil— va detrás del código, que a su vez va detrás de la audiencia.

Ese orden es precisamente el inverso de lo que un adversario necesita.

Una base de fans grande, confiada y mayoritariamente no técnica instalando el mismo software en la misma semana, señalados por alguien en quien ya confían, es el objetivo más atractivo que existe: enorme, uniforme y ya predispuesto.

Es exactamente el monocultivo que un gusano desea, con la alfombra de bienvenida ya puesta.

Así que la parte alentadora de esta historia no es que el código fuera perfecto —no lo era— sino que el proyecto instaló el timbre y envió las correcciones en aproximadamente un día desde que escuchó el golpe.

Para un software que se mueve tan rápido, frente a una audiencia de este tamaño, ese reflejo —abrir un canal privado, responder rápidamente, corregir abiertamente— vale más que haber tenido un historial impecable desde el principio. Es, al final, cómo se gana realmente la confianza en el autoalojamiento.

Por ahora... ¡eso es todo, amigos!

Jamieson O'Reilly - inline image

https://x.com/Grummz/status/2061300454907371953

https://x.com/ashnichrist/status/2061481763516399737

https://x.com/theonejvo/status/2061350250766615006

https://x.com/theonejvo/status/2061351074272006476

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales