Los agentes de inteligencia artificial de Android de código abierto podrían permitir que el texto de la pantalla invisible ejecute código en las PC host

Una aplicación de Android que puede dibujar sobre otras ventanas y escribir en un almacenamiento compartido puede enviar instrucciones al agente de inteligencia artificial que maneja ese teléfono, en un texto que ningún ojo humano verá jamás. Dos pasos más y la misma aplicación ejecutará comandos en la PC que controla al agente.

Los investigadores demostraron esa cadena, además de otros seis ataques, contra cinco marcos de agentes móviles de código abierto: AppAgent, AppAgentX, Mobile-Agent-v3, Open-AutoGLM y MobA. Todos cayeron al menos a seis de los siete.

El papel subió en arXiv el 1 de julio y fue revisado el 14 de julio. Los autores están en la Universidad Simon Fraser, la Universidad China de Hong Kong, la Universidad de Shandong y el Laboratorio Xingtu de la empresa de seguridad china QAX.

Nada aquí tiene un CVE, y el primer autor Zidong Zhang dijo Las noticias de los piratas informáticos el equipo no tiene evidencia de que las técnicas se hayan utilizado fuera de un entorno controlado. Hacker News revisó los cinco marcos y encontró las rutas de captura de pantalla, la llamada de shell y el respaldo de transmisión que el periódico describe todavía en sus ramas principales a partir del 17 de julio.

Zhang dijo que el equipo envió un correo electrónico privado a los mantenedores afectados antes de publicar la preimpresión y «no ha recibido respuesta hasta la fecha».

La escalada es la parte menos exótica. AppAgent’s controlador ejecuta subprocess.run(adb_command, shell=True) y crea entradas de texto colocando la salida del modelo directamente en el texto de entrada del shell adb {input_str}. La lista del periódico muestra que la función no tiene ningún tipo de desinfección.

El código en vivo funciona marginalmente mejor y no es suficiente: elimina espacios y comillas simples antes de interpolar, y deja el resto de los metacaracteres del shell en paz. No;, no &, no >. Entonces, una cadena que el modelo lee en una pantalla y escribe diligentemente es dividida por el shell del host, y la mitad posterior se ejecuta en el cuadro de Windows del operador.

Una carga útil diseñada para iniciar calc.exe hizo exactamente eso en 20 de 20 pruebas contra AppAgent, AppAgentX, Mobile-Agent-v3 y MobA. Una ejecución separada de un extremo a otro contra AppAgent utilizó test;pwd>rce_success y escribió el directorio de trabajo del host en un archivo.

Ciberseguridad

Poner esa cuerda delante del modelo es una carrera de archivos. Abrir-AutoGLM ejecuta screencap -p /sdcard/tmp.png y luego un adb pull por separado. Agente-móvil-v3 escribe en un /sdcard/screenshot.png fijo y duerme medio segundo entre los dos. AppAgentX escribe en /sdcard/ con nombres de archivo con marca de tiempo que llevan un contador de pasos incremental, un patrón que un atacante puede observar. AppAgent enviado configuración.yaml todavía tiene como valor predeterminado su directorio de captura de pantalla /sdcard.

Los investigadores calcularon esa brecha entre los marcos entre 50 y 500 ms, con un promedio de alrededor de 210 ms en 100 ejecuciones. Un servicio en segundo plano que sondea cada 5 a 10 ms tiene espacio para bloquear un archivo, volver a pintar el PNG y soltarlo antes de que el agente lo recopile. La manipulación aterrizó 19/20 a 20/20 contra cuatro de los cinco.

Para ampliar aún más la ventana, le mostraron al agente una superposición invisible que decía que se estaba ejecutando una sincronización de red y le pedían que esperara tres segundos. La modelo lo creyó.

Los seis modelos de visión que los investigadores probaron leyeron texto con una opacidad del 2% en al menos 18 de 20 ensayos de laboratorio. El documento sitúa ese nivel por debajo de la detección humana típica bajo una visión normal. GPT-4o, Claude Opus 4.5, Gemini 3 Pro y GLM-4V obtuvieron 20 sobre 20. Los números no aumentan a medida que el texto se vuelve más visible, porque comienzan en el techo.

AutoGLM-Phone, un modelo 9B que se ejecuta en el propio dispositivo, fue el más débil de los seis con 18 de 20. La visión humana aplica un umbral. La captura de pantalla no.

La asimetría también tiene una versión de hardware. Los teléfonos redondean sus esquinas y hacen agujeros para las cámaras, pero el búfer de cuadros permanece rectangular, por lo que los píxeles representados en esas regiones se ubican debajo del bisel y aparecen en cada captura de pantalla. En un Pixel 4, eso deja alrededor de 78 píxeles de ancho oculto en una esquina, suficiente para un comando corto, y los cinco agentes leen cargas útiles.

Un tercer truco evita por completo el sigilo: un servicio de accesibilidad coloca una actividad de inicio de sesión falsa sobre la aplicación real y permite que el agente escriba las credenciales del usuario en ella. Una persona podría dudar ante una solicitud de contraseña inesperada. Ninguno de los cinco lo hizo en 100 ensayos.

Nadie autenticó el teclado.

Los agentes no tienen un canal autorizado para acceder a un teléfono, por lo que reutilizan los de depuración, y de ahí sale el ataque más barato del conjunto. Open-AutoGLM codifica en base64 el texto que escribe y lo dispara en ADB_INPUT_B64, una transmisión implícita recogida por Teclado BADuna herramienta de automatización de pruebas creada para aceptar texto de cualquier cosa que lo transmita.

Ese es su propósito documentado, y aún se mantiene, con una Prelanzamiento de abril lleva una solución de Android 16. ADB Keyboard hace lo que promete su README. Los agentes son los que convirtieron un arnés de prueba en una tubería de entrada de producción.

Mobile-Agent-v3 mantiene una lista de permitidos estrecha: las letras, los dígitos y la puntuación común van a través del texto de entrada del shell adb, y todo lo demás, es decir, cualquier carácter que no sea ASCII, sale un carácter a la vez a través de ADB_INPUT_TEXT. Moba es más contundente. Su type_text prueba toda la cadena con text.isascii(), por lo que un emoji o una letra acentuada en cualquier parte de un mensaje envía el mensaje completo a través de la transmisión en una sola toma.

Cualquier aplicación que registre la misma acción recibe la misma carga útil y no necesita permiso para hacerlo, por lo que nada advierte al usuario. Cuando un atacante tiene accesibilidad, TYPE_VIEW_TEXT_CHANGED entrega el mismo texto en texto plano, incluidos los campos de contraseña, en los cinco.

Las condiciones previas son reales. Esto requiere una aplicación ya instalada, un agente en mitad de la tarea y la depuración USB o inalámbrica habilitada. El software afectado son herramientas de desarrollo de código abierto, no el asistente integrado en un teléfono estándar.

Los agentes propios, incluidos Bixby de Samsung y XiaoAi de Xiaomi, estaban fuera de alcance, al igual que iOS. Zhang hizo una advertencia: varios de los ataques necesitan permisos mínimos de Android, y uno no necesita ninguno en absoluto, lo que, según él, reduce la barrera para un atacante motivado.

Una variante tampoco necesita ninguna aplicación maliciosa. Debido a que una carga útil puede viajar en los canales de crominancia de una imagen en lugar de su brillo, un atacante que nunca toque el dispositivo podría enterrar una en una imagen y dejar que el propio agente de la víctima la capture desde una aplicación de mensajería. Los investigadores lo llaman una extensión en lugar de un resultado medido. También es la única versión sin paso de instalación.

Correcciones, y una que no existe.

Dos de los cinco ya muestran cómo es el derecho. MobA transmite capturas de pantalla a través de salida ejecutiva y nunca tiene un archivo del lado del dispositivo para ejecutar. Open-AutoGLM pasa argumentos como listas en lugar de concatenar cadenas, y es el único de los cinco inmune a la inyección de comandos del host.

Ningún proyecto acierta en ambos. Ninguna de las correcciones siguientes requiere tocar el modelo:

  • Soltar shell=Verdadero. Pase listas argv, para que los metacaracteres permanezcan literales.
  • Transmita capturas de pantalla en lugar de escribir y luego extraer. Sin archivo del lado del dispositivo, sin ventana TOCTOU.
  • Coloque un permiso a nivel de firma en la transmisión de entrada o utilice intenciones explícitas.
  • Diferencia la actividad en primer plano antes y después de cada acción y mantén una lista de paquetes permitidos por tarea.
  • Ejecute la mejora del contraste en las capturas de pantalla antes de que el modelo las vea. Parcial, no es una solución.

La defensa obvia es un mensaje de confirmación sobre acciones sensibles, y Open-AutoGLM incluye uno. Se activa cuando el modelo decide que una acción es sensible. Los ataques de percepción reescriben ese juicio, razón por la cual el artículo califica el aviso como insuficiente contra la inyección subliminal, la suplantación de la interfaz de usuario y la manipulación de capturas de pantalla.

Ciberseguridad

Contra la difusión y el rastreo de accesibilidad, no hace nada en absoluto, porque no hay ninguna acción para confirmarlo. El texto ya desapareció. En cuanto a la inyección de esquinas y recortes, los investigadores son contundentes: «no existe una solución basada en software sencilla y eficaz». Enmascarar esquinas es una solución para un problema de hardware.

No hay donde reportarlo

El silencio tiene una estructura detrás. Zhang dijo que el equipo recurrió a un correo electrónico privado porque los proyectos no tienen un canal dedicado para informar vulnerabilidades y The Hacker News no encontró ninguna política de seguridad publicada en ninguno de los cinco repositorios.

El documento agrega que Tencent y Alibaba fueron los primeros en contactarse, y que los proyectos de código abierto de grado de investigación se encuentran fuera del alcance habitual del Centro de Respuesta de Seguridad.

Compare eso con el de Microsoft Informe de mayo sobre el kernel semánticosu marco de agente, donde el mismo patrón de salida del modelo que llega a un shell produjo CVE-2026-25592, CVE-2026-26030 y una versión parcheada. La versión de una sola línea de Microsoft se transfiere aquí sin modificaciones: «su LLM no es un límite de seguridad».

La mitad superpuesta no es un terreno nuevo. Wu et al. impulsó la inyección rápida a través de ventanas superpuestas contra AppAgent y Mobile-Agent en mayo de 2025, y Ding et al. seguido en octubre con indicaciones que aparecen solo mientras un agente está mirando.

La sección de trabajo relacionado de este artículo no cita ninguno de los dos y omite por completo la literatura sobre seguridad de agentes móviles. Lo que agrega es el otro extremo de la cadena: fuera de la pantalla, a través del archivo, hasta el host.

Lo que deja la parte incómoda. Open-AutoGLM tiene más de 25.000 estrellas de GitHub y su LÉAME Lo guía para habilitar la depuración USB, cargar el teclado y entregarle sus entradas. Siga los documentos exactamente y habrá creado todas las condiciones previas que necesitan los ataques medidos, excepto la aplicación maliciosa en sí. La guía de configuración es el resto del modelo de amenazas.

El error de proxy Squid 'Squidbleed' de 29 años puede filtrar solicitudes HTTP de texto sin cifrar

Una sobrelectura del montón en el proxy web de Squid puede filtrar la solicitud HTTP en texto claro de otro usuario, incluidas las credenciales o tokens de sesión que lleva, a cualquiera que ya tenga permiso para enviar tráfico a través del mismo proxy.

El error se remonta a un 1997 cambio de análisis de FTP y todavía está activo en la configuración predeterminada de Squid. Investigadores de Calif.io lo reveló en junio y lo nombró calamar (CVE-2026-47729), después de Heartbleed, que filtró memoria de la misma manera.

Squid describe esto como un ataque de un cliente de confianza: alguien que ya tiene permiso para usar el proxy, no cualquier host aleatorio en Internet. Eso coincide con el hogar habitual de Squid, redes compartidas como escuelas, oficinas y Wi-Fi público. En esas configuraciones, el atacante es simplemente otro usuario del mismo proxy.

La filtración también llega sólo al tráfico que Squid puede leer. HTTPS normal recorre un túnel CONNECT opaco, por lo que Squid nunca ve su interior; el tráfico expuesto es HTTP de texto sin cifrar, además de configuraciones de terminación TLS donde Squid descifra e inspecciona.

Ciberseguridad

El atacante también necesita que el proxy llegue a un servidor FTP que controla en el puerto 21. Tanto FTP como ese puerto están activados de forma predeterminada.

Cómo funciona la fuga

El error se encuentra en el analizador de listado de directorios FTP de Squid. Para manejar servidores NetWare antiguos que rellenaban listados con espacios adicionales, el código omite los espacios en blanco con un bucle: while (strchr(w_space, *copyFrom)) ++copyFrom;.

Si el servidor FTP del atacante envía una línea de listado que termina justo después de la marca de tiempo, sin nombre de archivo, copyFrom aterriza en el terminador nulo de la cadena. strchr trata esa terminación NUL como parte de la cadena que busca, por lo que devuelve un puntero en lugar de NULL y el bucle nunca se detiene. Sale del final del búfer y xstrdup copia lo que sigue al atacante como un nombre de archivo.

Los bytes filtrados son la parte útil. Squid reutiliza los buffers de memoria liberados sin ponerlos a cero, por lo que un buffer de 4 KB que recientemente contuvo la solicitud HTTP de una víctima todavía contiene la mayor parte. Una línea FTP corta sobrescribe sólo los primeros bytes; la lectura excesiva devuelve el resto.

La demostración de Calif extrae un encabezado de Autorización de una víctima que comparte el mismo proxy, suficiente para actuar como ese usuario. El código de prueba de concepto es públicoy hasta el momento no se ha informado de explotación en la naturaleza.

que hacer

Si aplica el parche, verifique la solución, no solo la versión. Confirme que la guardia esté en FtpGateway.cc, o verifique el backport de su distribución, ya que las distribuciones envían sus propias compilaciones (paquetes Debian Squid 5.7).

El hilo público sigue siendo inconsistente: el mantenedor Amos Jeffries primero dijo que Squid 7.6 tenía la solución, luego corregido eso a 7.7y el 22 de junio Salvatore Bonaccorso de Debian tomó nota del compromiso al que se hace referencia Parece que ya está en 7.6.

Ciberseguridad

La solución es pequeña, una verificación de terminador nulo antes de que las llamadas strchr vulnerablesfusionado con la rama de desarrollo en abril y v7 en mayo. Squid 7.6 parchea por separado CVE-2026-50012, un desbordamiento del montón cache_digest no relacionado.

La medida más limpia es la que recomiendan los investigadores de todos modos: desactivar FTP. Chromium eliminó FTP hace años y la mayoría de las redes casi no lo transportan, por lo que al desactivarlo se elimina esta superficie de ataque de forma gratuita, independientemente de la versión que ejecute.

El riesgo es real pero limitado. SUSE lo califica como moderado, CVSS6.5y el vector explica la puntuación: el atacante necesita acceso proxy (privilegios bajos) y el único impacto es la confidencialidad, nada sobre la integridad o la disponibilidad.

Calif le da crédito a Claude Mythos Preview de Anthropic, el modelo detrás del Proyecto Glasswing, por detectar la peculiaridad de strchr casi de inmediato; el mismo tipo de error enterrado del analizador que los agentes de IA han estado apareciendo en otros lugares, incluso en FFmpeg. Calif insinúa que el código FTP de Squid puede no ser el último lugar donde olvidó dejar de leer.