Neutron, nuestro motor de IA, obtuvo un 97.1% en el benchmark CyberGym de UC Berkeley. Más información

Análisis a fondo

Análisis a fondo

worse_query: escape del sandbox de iOS y acceso a datos de apps

Un escape del sandbox de iOS 26 y 27 permite que una app fuera de la App Store lea datos de otras apps; las actualizaciones del 9 de noviembre no lo corrigen.

Resumen

  • Una prueba de concepto pública llamada worse_query escapa del sandbox de iOS y alcanza contenedores de otras apps. Una app con un grupo de apps puede pedir al gestor una extensión de sandbox hacia una ruta arbitraria.
  • La prueba de concepto indica iOS 26.0 a 26.7.2 e iOS 27.2. Apple publicó iOS 27.2.1 e iOS 26.7.3 el 9 de noviembre de 2026, sin corrección de sandbox en las notas.
  • No hay CVE asignada, y Apple no ha publicado aviso ni versión corregida. Binance advirtió el 10 de noviembre de 2026 que secretos de cartera podrían quedar expuestos; no se informa de ataques ni robos. Sin CVE, la falla no figura en el catálogo Known Exploited Vulnerabilities (KEV) de CISA a 10 de noviembre de 2026.
  • Elimine las apps instaladas fuera de la App Store y restrinja la instalación en dispositivos gestionados. Trate cualquier iPhone que ejecutara una app instalada fuera de la App Store como expuesto. Véase «¿Cómo lo corrijo?».

¿Estoy afectado?

Todas estas condiciones deben cumplirse:

  • Usa un iPhone o iPad con una versión alcanzada por el escape. La prueba de concepto indica iOS 26.0 a 26.7.2 e iOS 27.2. Herramientas derivadas también afirman iOS 27.2.1.
  • El dispositivo tiene una app instalada fuera de la App Store, o una app controlada por el atacante, con un contenedor de grupo de apps. La prueba de concepto pública necesita un grupo de apps, y las herramientas de instalación lateral crean uno automáticamente.
  • La app se ejecuta en el dispositivo. El escape demostrado es local al teléfono; no es un ataque de red remoto.

La prueba de concepto pública alcanza el contenedor de datos de cada app y algunas carpetas del sistema en iOS 27. Su README enumera las rutas que puede abrir:

/var/containers/Data/System (iOS 27)
/var/containers/Shared/SystemGroup/* (iOS 27)
/var/mobile/Containers/Data/Application/*
/var/mobile/Containers/Data/InternalDaemon/*
/var/mobile/Containers/Data/PluginKitPlugin/*
/var/mobile/Containers/Shared/AppGroup/*
Línea de iOS Funcional según las fuentes Versión corregida
iOS 26 26.0 a 26.7.2, según el README de la prueba de concepto Ninguna. Las notas de seguridad de iOS 26.7.3 no mencionan una corrección de sandbox.
iOS 27 27.2, según el README; una herramienta derivada afirma 27.2.1 Ninguna. Las notas de seguridad de iOS 27.2.1 no mencionan una corrección de sandbox.

Compruebe la versión instalada en el dispositivo en Ajustes, General y luego Información. La versión aparece en la primera pantalla.

Para un parque gestionado, enumere los dispositivos y sus versiones desde la consola de gestión de dispositivos móviles. Después enumere las apps instaladas fuera del catálogo gestionado. Un iPhone que solo ejecuta apps de la App Store es un caso de exposición distinto de uno que ejecuta versiones instaladas fuera de la tienda.

¿Cómo lo corrijo?

No hay corrección. Apple no ha publicado aviso, CVE ni versión de iOS corregida para worse_query, y las actualizaciones del 9 de noviembre no lo mencionan. Estos pasos reducen la exposición hasta que Apple publique una corrección:

  1. Elimine las apps instaladas fuera de la App Store, incluidas las instaladas con AltStore, SideStore o un servicio de firma. Elimine la app y su perfil de configuración.
  2. En dispositivos gestionados, bloquee la instalación fuera del catálogo de apps gestionado. En dispositivos no gestionados, use Tiempo de uso para impedir la instalación de apps cuando sea posible.
  3. Actualice iOS a la última versión. No cierra este escape, pero corrige los fallos que Apple corrigió el 9 de noviembre.
  4. Para una cartera o cuenta que guardaba secretos en el dispositivo, mueva los fondos o la cuenta a una cartera nueva creada en un dispositivo limpio. Restablezca las sesiones activas, como aconsejó Binance.
  5. Revise los perfiles de configuración instalados en Ajustes, General, VPN y Gestión de dispositivos, y elimine cualquier perfil que no pueda justificar.

Eliminar una app instalada fuera de la App Store quita la copia del escape de ese dispositivo. No deshace el acceso que ya ocurrió. Si una app que no es de confianza se ejecutó en el teléfono, trate los datos de los contenedores de otras apps como posiblemente leídos.

¿Cuál es la causa raíz?

El escape abusa de la API de extensión de sandbox del gestor de contenedores. Una app puede pedir al gestor acceso a una parte de su contenedor de grupo de apps. El gestor sigue un enlace simbólico controlado por la app y emite una extensión para el destino del enlace.

iOS aísla las apps en sandboxes. Un contenedor guarda los datos de una app, y un grupo de apps permite que varias apps compartan un contenedor. Cuando una app necesita acceso a una ruta, el gestor de contenedores puede emitir una extensión de sandbox. La app consume el token para extender su sandbox a esa ruta.

La prueba de concepto llama a la interfaz de consulta privada del gestor. Pide la clase 7, la clase de grupos de apps, y la parte 3, el directorio Library/Caches del grupo:

query_set_class(query, 7); // appGroup
query_set_group_identifiers(query, identifier);
query_set_part(query, 3); // Library/Caches
...
void *result = query_get_single_result(query);
char *token = copy_sandbox_token(result);
int64_t handle = consume_extension(token);

Antes de la consulta, la app elimina el directorio Library/Caches de su grupo y lo recrea como enlace simbólico a la ruta objetivo:

[files removeItemAtPath: caches error: nil];
[files createSymbolicLinkAtPath: caches withDestinationPath: target error: nil];

La consulta resuelve la parte solicitada a través del sistema de archivos. El gestor de contenedores sigue el enlace simbólico, decide que el destino resuelto es la ruta que debe autorizar y devuelve una extensión de sandbox para ella. No comprueba que la ruta resuelta siga dentro del contenedor del grupo de apps. La app consume el token y puede abrir la ruta objetivo.

La prueba de concepto también incluye pathleak, una herramienta que fuerza números de inodo con fsgetpath() para recuperar las rutas UUID de otros contenedores. Eso convierte una ruta objetivo conocida en una lista de todos los contenedores de apps del dispositivo.

¿Cómo se explota?

Una app maliciosa o instalada fuera de la App Store ejecuta el escape localmente y obtiene una extensión de sandbox hacia un directorio objetivo. Luego lee o modifica archivos de otras apps.

  1. La víctima instala una app fuera de la App Store, o una app controlada por el atacante. Las herramientas de instalación lateral crean el contenedor de grupo de apps que el escape necesita.
  2. La app elimina el directorio Library/Caches de su grupo de apps y lo sustituye por un enlace simbólico a una ruta objetivo.
  3. La app llama a la API de consulta del gestor de contenedores para la parte Library/Caches del grupo. El gestor sigue el enlace y emite una extensión de sandbox para el objetivo.
  4. La app consume la extensión con sandbox_extension_consume().
  5. La app repite la consulta para otras rutas. pathleak enumera los directorios de contenedores de otras apps por inodo, y la app solicita una extensión para cada uno.
  6. La app lee archivos como bases de datos, documentos, cookies y configuraciones. Una versión de gestor de archivos llamada WQ Files también puede editar, eliminar y borrar esos datos, según su desarrollador.

El escape no necesita jailbreak y no usa un exploit del kernel. Es un fallo de lógica en cómo el gestor de contenedores autoriza una ruta. La prueba de concepto pública está escrita para desarrolladores; otros desarrolladores han creado apps instalables a partir de ella.

Ni Binance ni el investigador informaron de ataques o robos. El aviso de Binance nombra las clases de datos en riesgo, no una cartera comprometida ni un número de víctimas. La plataforma no nombró ninguna app de cartera como expuesta, y el investigador tampoco.

¿Cómo se desarrolla el ataque?

Una app instalada fuera de la App Store sustituye el directorio de caché de su grupo de apps por un enlace simbólico. El gestor de contenedores emite una extensión de sandbox para el destino del enlace, y la app la usa para leer o cambiar datos de otras apps.

flowchart LR A["App instalada fuera de la tienda con un grupo de apps"] --> B["Sustituir Library/Caches por un enlace simbólico"] B --> C["Consultar la parte de caché del grupo"] C --> D["Ninguna comprobación de que la ruta siga en el contenedor"] D --> E["Extensión de sandbox emitida para el objetivo"] E --> F["Contenedores de otras apps legibles y modificables"]

¿Qué puede hacer un atacante?

Un atacante que consigue instalar una app maliciosa en el teléfono puede leer y cambiar archivos de los contenedores de otras apps, y algunas carpetas del sistema en iOS 27. Eso puede exponer cookies de sesión, documentos, bases de datos y cualquier secreto que una app guarde en su contenedor.

Las condiciones forman parte del impacto:

  • El atacante necesita que la víctima instale una app fuera de la App Store, o una app maliciosa con un contenedor de grupo de apps. La prueba de concepto pública no muestra una instalación remota.
  • La app debe ejecutarse en el dispositivo. El escape es ejecución de código local dentro del sandbox de la app, no un servicio de red.
  • El alcance son los datos que otras apps guardan en sus contenedores. Binance advierte que las frases semilla, las claves privadas y las credenciales pueden quedar expuestas; la plataforma no identificó una app de cartera que las guarde en una ruta alcanzable.
  • La prueba de concepto pública lee y enumera. Un gestor de archivos derivado también edita, elimina y borra datos, según su desarrollador.
  • No se informa de ataques ni robos, y ninguna app de la App Store está confirmada como usuaria del escape.

El impacto está limitado por la protección de datos de las apps de iOS. Algunos archivos están cifrados con una clave ligada al código del dispositivo y no se pueden leer mientras el dispositivo está bloqueado. Los escritos públicos no miden qué archivos siguen legibles en cada estado de bloqueo, así que no suponga que un teléfono bloqueado protege todos los contenedores.

¿Por qué funciona la corrección?

No existe corrección, así que nada cierra todavía el escape. La comprobación que falta es la que debe añadir una corrección. Tras resolver la ruta solicitada, el gestor de contenedores debe verificar que el resultado sigue dentro del contenedor del grupo de apps antes de emitir una extensión de sandbox.

La ruta de código actual autoriza el destino resuelto.

El paso que falla es la validación de ese destino contra la raíz del contenedor. Una implementación correcta resolvería el enlace simbólico, compararía la ruta canónica con la raíz canónica del contenedor y rechazaría la solicitud cuando el destino esté fuera. También tendría que manejar una ruta que cambia entre la comprobación y el uso, que es la carrera que crea el enlace simbólico.

Apple no ha publicado una corrección, así que esta sección no puede citar una. El repositorio de la prueba de concepto y las notas de seguridad son el registro público.

¿Cómo compruebo si estuve comprometido?

No se publican indicadores de compromiso. Compruebe qué está instalado en el dispositivo y si una app que no es de confianza pudo ejecutarse.

  • Enumere las apps instaladas fuera de la App Store. Busque WQ Files, AltStore, SideStore y apps de servicios de firma, así como apps que no reconozca.
  • Revise los perfiles de configuración en Ajustes, General, VPN y Gestión de dispositivos. Elimine los perfiles que no pueda justificar.
  • En un parque gestionado, compare el inventario de apps instaladas con el catálogo gestionado y marque cada app que no esté en él.
  • Si una app que no es de confianza se ejecutó en el teléfono, suponga que los datos de los contenedores de otras apps pudieron leerse. Cambie las contraseñas y los tokens de sesión de las cuentas usadas en el teléfono, y mueva los fondos de la cartera a una cartera nueva en un dispositivo limpio.
  • Conserve el dispositivo y sus registros antes de borrarlo si necesita investigar. iOS guarda pocos registros de acceso a archivos de apps, así que la ausencia de una entrada no prueba que el escape no se usara.

Cronología

  • 2026-11-08: El investigador forcequit publica la prueba de concepto worse_query en GitHub.
  • 2026-11-09: Apple publica iOS 27.2.1 e iOS 26.7.3. Ninguna de las dos notas de seguridad menciona un escape de sandbox ni worse_query.
  • 2026-11-10: Binance advierte a los usuarios de que el escape podría exponer secretos de cartera, y The Hacker News informa del aviso.

De la prueba de concepto pública al aviso de la plataforma en dos días
Figura 1: La prueba de concepto apareció el 8 de noviembre, las actualizaciones de Apple llegaron el 9 de noviembre sin corrección, y Binance advirtió el 10 de noviembre. Fuente: repositorio worse_query y notas de seguridad de Apple, comprobados el 10 de noviembre de 2026

Preguntas frecuentes

¿Hay una CVE para worse_query?

No. No hay CVE asignada al 10 de noviembre de 2026, y Apple no ha publicado un aviso. El repositorio de la prueba de concepto, las herramientas derivadas y el aviso de la plataforma son el registro público.

¿Necesita jailbreak?

No. El escape usa la interfaz de consulta privada del gestor de contenedores y un enlace simbólico. No usa un exploit del kernel, y el investigador dice que no es relevante para un jailbreak.

¿Puede usarlo una app de la App Store?

No está confirmado. La prueba de concepto necesita un contenedor de grupo de apps, que las apps de la App Store pueden tener con el entitlement adecuado. Nadie implicado ha dicho si una app de la App Store puede alcanzar la ruta vulnerable, y no se nombra ninguna app de la App Store. Trate la cuestión como abierta.

¿Qué versiones de iOS están afectadas?

El README de la prueba de concepto indica iOS 26.0 a 26.7.2 e iOS 27.2. Una herramienta derivada indica iOS 27.2.1, y ninguna fuente pública indica iOS 26.7.3. Apple no ha confirmado un rango.

¿Se explota en entornos reales?

No se informa de ataques ni robos al 10 de noviembre de 2026. Binance advirtió del riesgo y pidió a los usuarios que eliminaran apps que no son de confianza y movieran los fondos si sospechan un compromiso. Un aviso no es un informe de víctima.

¿Corrige el fallo actualizar a iOS 27.2.1 o 26.7.3?

No. Apple publicó ambos el 9 de noviembre de 2026, y sus notas de seguridad enumeran otras correcciones, no un escape de sandbox. Revise las notas de Apple para una versión posterior antes de suponer que una actualización cierra el fallo.

Referencias

  • Repositorio forcequitOS/worse_query, «A sandbox escape for iOS 26 and 27, again», creado el 8 de noviembre de 2026, con el rango de versiones del README, las rutas accesibles y el código de la prueba de concepto: https://github.com/forcequitOS/worse_query (comprobado el 10 de noviembre de 2026)
  • La implementación de la prueba de concepto, worse_query/worse_query.m, la consulta del grupo de apps, el enlace simbólico y el consumo de la extensión: https://github.com/forcequitOS/worse_query/blob/main/worse_query/worse_query.m (comprobado el 10 de noviembre de 2026)
  • La herramienta de enumeración de rutas, worse_query/pathleak.m: https://github.com/forcequitOS/worse_query/blob/main/worse_query/pathleak.m (comprobado el 10 de noviembre de 2026)
  • Apple, «About the security content of iOS 27.2.1 and iPadOS 27.2.1», publicado el 9 de noviembre de 2026, sin entrada de sandbox ni worse_query: https://support.apple.com/en-us/149715 (comprobado el 10 de noviembre de 2026)
  • Apple, «About the security content of iOS 26.7.3 and iPadOS 26.7.3», publicado el 9 de noviembre de 2026, sin entrada de sandbox ni worse_query: https://support.apple.com/en-us/149716 (comprobado el 10 de noviembre de 2026)
  • The Hacker News, «Binance Warns of iOS Sandbox Escape That Could Expose Crypto Wallet Keys, No Fix Confirmed», 10 de noviembre de 2026, con la orientación de Binance y la declaración del investigador: https://thehackernews.com/2026/11/binance-warns-of-ios-sandbox-escape.html (comprobado el 10 de noviembre de 2026)