Microsoft Edge · Cadena de fallos lógicos hasta ejecutar código
El investigador Orange Tsai, de DEVCORE, publica cómo ganó Pwn2Own Berlin 2026: tomó el control de un Windows desde Edge sin un solo fallo de memoria, solo con errores lógicos. Microsoft lo corrigió hace meses.
En Pwn2Own Berlin 2026, Orange Tsai (DEVCORE) encadenó varios errores de lógica de Microsoft Edge con dos funciones de Windows. Con ello pasó de visitar una web maliciosa a ejecutar código en el equipo con los permisos del usuario, y ganó 175.000 dólares. Microsoft corrigió las piezas del navegador en Edge 148.0.3967.70 (15 de mayo de 2026) con los identificadores CVE-2026-45492, CVE-2026-45494 y CVE-2026-45495. No consta que nadie lo haya explotado fuera del concurso. Ahora, en octubre de 2026, el investigador ha publicado todos los detalles técnicos.
Materias: Vulnerabilidades, Navegadores, Microsoft, Pwn2Own, Fallos lógicos, UXSS, Escape de sandbox
Solemos imaginar los grandes ataques a navegadores como algo de corrupción de memoria: desbordamientos, punteros colgantes, magia negra en ensamblador. El investigador taiwanés Orange Tsai ha demostrado que no hace falta. Le bastaron cinco errores de «lógica» (el programa hace exactamente lo que se le dijo, pero se le dijo mal) y dos funciones legítimas de Windows. Con eso pasó de abrir una página web en Microsoft Edge a ejecutar un programa en el ordenador de la víctima. Lo hizo en directo en Pwn2Own Berlin 2026, el 14 de mayo, y Microsoft publicó el parche al día siguiente. La noticia de hoy es que el autor ha publicado cómo lo hizo.
Descripción
Pwn2Own es un concurso de seguridad que organiza la Zero Day Initiative (ZDI) de Trend Micro. Los investigadores atacan productos actualizados ante notarios técnicos, y los fallos se entregan al fabricante para que los corrija antes de hacerlos públicos. En la edición de Berlín de 2026, ZDI confirmó que Orange Tsai, del equipo DEVCORE Research Team, consiguió un escape de sandbox en Microsoft Edge encadenando fallos lógicos. Un escape de sandbox significa salir del «recinto aislado» en el que el navegador ejecuta las páginas web. El premio fue de 175.000 dólares y 17,5 puntos «Master of Pwn».
Qué es y qué está confirmado
Una cadena completa (full chain) es una sucesión de vulnerabilidades que, por separado, tienen un impacto limitado. Juntas, llevan desde «la víctima visita una web» hasta «el atacante ejecuta código en su equipo». Según el autor, esta cadena reúne cinco fallos y dos funciones de Windows. ZDI habla de «4 fallos lógicos» en el anuncio del concurso. La diferencia probablemente se debe a cómo se cuenta cada pieza.
Microsoft asignó CVE a tres piezas del navegador. ZDI, en sus avisos coordinados del 4 de junio de 2026, las atribuye expresamente a Orange Tsai y al concurso:
- CVE-2026-45492 (ZDI-26-329): error de validación de origen en el mecanismo de inicio de sesión gestionado entre dispositivos. Permite saltarse una medida de seguridad. Microsoft la clasifica como CWE-20 (validación de entradas incorrecta) y le da un CVSS de 5,4.
- CVE-2026-45494 (ZDI-26-330): fallo en el manejo de la navegación que permite un UXSS. Microsoft lo clasifica como CWE-79 y le da un CVSS de 5,4; NVD le da 6,1.
- CVE-2026-45495 (ZDI-26-331): recorrido de directorios (path traversal, CWE-35 según la guía de Microsoft) al manejar los archivos de registro de «comentarios» de Edge. Permite escribir archivos donde no se debe. Microsoft lo califica como ejecución remota de código con CVSS 3.1 de 8,8 («Importante»).
Hay un detalle que conviene saber. Las preguntas frecuentes que Microsoft publica en su guía de actualizaciones para CVE-2026-45492 y CVE-2026-45494 describen escenarios distintos (pestañas divididas, VBS). Esos escenarios no coinciden con lo que cuentan ZDI y el investigador. La correspondencia entre cada CVE y cada pieza de la cadena procede de los avisos de ZDI, no de una explicación detallada de Microsoft.
Las otras dos piezas son una lista blanca del bloqueador de ventanas emergentes y una mala configuración CORS en el servicio web assets.msn.com. No tienen CVE público conocido. Al ser la segunda un fallo de un servicio en la nube, se corrige en el servidor y no en el navegador, pero no consta confirmación pública de cuándo se corrigió.
A quién y a qué versiones afecta
- Afectadas: Microsoft Edge (basado en Chromium) anterior a 148.0.3967.70, según los registros CVE de Microsoft y NVD.
- Corregida: 148.0.3967.70 (canal estable, 15 de mayo de 2026, basada en Chromium 148.0.7778.168) y posteriores. Las notas de seguridad de Edge también incluyen CVE-2026-45495 en las versiones de iOS (19 de mayo) y Android (21 de mayo).
- Escenario de la demostración: Windows con una cuenta Microsoft (MSA) iniciada, cosa que Windows 11 25H2 exige por defecto durante la instalación. Algunas piezas dependen de funciones propias de Windows, así que la cadena completa, tal como se describe, es específica de ese sistema.
Mecánica
El autor ha publicado la explicación completa en su blog y en sus charlas de HITCON y Hexacon. Aquí la resumimos sin entrar en el código de explotación.
1. Una navegación «sin dueño»: el UXSS
Edge incluye un componente propio, EdgeCAGuidanceNavigationThrottle, ligado al Acceso Condicional de Entra ID, la gestión de identidades corporativas de Microsoft. Un navigation throttle es un filtro del proceso principal del navegador que inspecciona cada salto de página. Este filtro detecta una URL interna especial y, si se cumplen ciertas condiciones, lanza una navegación nueva hacia una dirección que viene en la propia URL. La controla, por tanto, el atacante.
El problema es que esa navegación nueva no indicaba desde qué pestaña se originaba. Chromium, en ese caso, usa por defecto la pestaña activa. Si el usuario estaba mirando otra web (por ejemplo, su correo), el código del atacante (una URL javascript:) se ejecutaba en esa otra web. Eso es un UXSS (Universal Cross-Site Scripting): poder ejecutar código JavaScript en el contexto de cualquier sitio. Como lo ordena el propio navegador, además se salta la política CSP (Content Security Policy), que es la defensa que usan las webs para limitar qué scripts pueden ejecutarse.
2. Quitar los obstáculos para que no haga falta ningún clic
- Comprobación de origen insuficiente: el filtro solo debía activarse desde dominios de Microsoft como
login.live.com. Pero comprobaba la última URL cargada en la pestaña, no quién ordenaba la navegación. Bastaba abrirlogin.live.comen una ventana nueva y redirigirla desde la web maliciosa (ZDI-26-329 / CVE-2026-45492). - Bloqueador de ventanas emergentes: Edge tenía una lista blanca interna con una dirección concreta (
about:blank#quickAuthPopup) a la que dejaba abrir ventanas sin restricción. - Perfil con sesión iniciada: la función OneAuth de Windows inicia sesión automáticamente con la cuenta Microsoft del sistema al visitar webs de Microsoft. No es un fallo, sino una función.
- Conocer el correo de la víctima: el filtro exigía el correo del perfil. Un servicio de
assets.msn.comlo devolvía y tenía mal configurado CORS, el mecanismo que decide qué webs ajenas pueden leer respuestas con las cookies del usuario. Así, cualquier página podía leer ese correo.
3. Salir del recinto aislado (sandbox)
Ejecutar JavaScript en cualquier web aún no es controlar el ordenador. Chromium impide usar el UXSS en sus páginas internas privilegiadas (edge://, chrome://…). Pero la lista de esquemas bloqueados no incluía read://, el esquema del Lector inmersivo de Edge. Desde ahí se podía llamar a una función interna de diagnóstico (zipDiagnosticLogFiles) que no validaba bien la ruta de destino. Eso permitía escribir archivos en ubicaciones arbitrarias (ZDI-26-331 / CVE-2026-45495, path traversal).
Con esa escritura, el investigador modificó la configuración que permite a Edge abrir protocolos externos sin preguntar. Después colocó un pequeño ejecutable con el nombre telnet.exe en una carpeta de usuario que forma parte de la ruta de búsqueda de programas de Windows (PATH). Como Telnet no viene instalado por defecto, al abrir un enlace telnet:// Windows encontraba y ejecutaba el programa del atacante, con los permisos del usuario. Según el autor, el reinicio del navegador que usó en la demostración solo era necesario para las condiciones del concurso.
Requisitos y límites: hace falta que la víctima visite una web controlada por el atacante. Todos los CVE llevan UI:R, es decir, «requiere interacción del usuario». El código se ejecuta con los permisos del usuario, no como administrador. No hay corrupción de memoria, así que defensas como ASLR o CFG no frenaban este ataque. Ese es precisamente su interés técnico.
Respuesta del creador
Microsoft publicó el 15 de mayo de 2026, un día después de la demostración, la versión estable 148.0.3967.70 de Edge, con tres correcciones específicas de Edge: CVE-2026-45492, CVE-2026-45494 y CVE-2026-45495. En su Guía de Actualizaciones de Seguridad (MSRC), Microsoft marca las tres como no explotadas y no divulgadas públicamente en el momento de la publicación. El 1 de junio añadió agradecimientos a dos de las fichas. Microsoft no ha hecho declaraciones públicas específicas sobre la cadena, más allá de esas fichas técnicas.
ZDI publicó el 4 de junio de 2026 los avisos ZDI-26-329, ZDI-26-330 y ZDI-26-331, con crédito a Orange Tsai (DEVCORE). Indican que el fabricante ya ha publicado la corrección. Como fecha formal de notificación a Microsoft figura el 20 de mayo, posterior al parche. Es un desfase habitual en Pwn2Own, porque los fallos se entregan al fabricante en el propio concurso.
Autoridades: no consta que estas vulnerabilidades figuren en el catálogo KEV de CISA (fallos con explotación conocida), y CISA las clasifica sin explotación. Para CVE-2026-45494, CISA indica «explotación: ninguna» en su análisis SSVC. No hemos encontrado un aviso específico de INCIBE-CERT sobre esta cadena.
Reconocimiento: según el investigador y la prensa especializada, el trabajo recibió el premio Epic Achievement en los Pwnie Awards de 2026.
Parches y mitigaciones
Estado de los parches
- Edge de escritorio (canal estable): corregido en 148.0.3967.70 (15 de mayo de 2026) y en todas las versiones posteriores.
- Edge para iOS y Android: las notas de Microsoft incluyen CVE-2026-45495 en las versiones 148.0.3967.70 para iOS (19 de mayo) y Android (21 de mayo).
- Piezas sin CVE (lista blanca de ventanas emergentes y CORS de
assets.msn.com): no hay confirmación pública oficial de su corrección. Sin las piezas del navegador ya parcheadas, la cadena tal como se describe no funciona.
Qué hacer hoy
- Comprobar la versión: abra
edge://settings/help. Cualquier versión 148.0.3967.70 o superior está protegida. Edge se actualiza solo, así que a finales de octubre de 2026 lo normal es que el equipo vaya muy por delante. - Empresas: revisen en su inventario (Intune, WSUS, SCCM u otra herramienta) que no haya equipos con Edge congelado en versiones antiguas. Revisen también las directivas que bloquean las actualizaciones automáticas (por ejemplo, las de
EdgeUpdate). - Endurecimiento general (no es imprescindible para este caso): evite carpetas de usuario con permiso de escritura incluidas en el
PATHdel sistema donde no sean necesarias. Limite con directivas qué protocolos externos puede abrir el navegador sin preguntar (AutoLaunchProtocolsFromOrigins).
Desde el punto de vista del cumplimiento, en organizaciones sujetas al RGPD o a la normativa NIS2, mantener el navegador actualizado forma parte de las medidas técnicas «apropiadas» que exige la ley. Un equipo con Edge sin actualizar desde mayo sería difícil de justificar en una auditoría.
Fuentes
- Orange Tsai — The Last Proof of Human Craft: Forging a Microsoft Edge Full Chain with Logic Bugs Only!
- ZDI — Pwn2Own Berlin 2026, Day One Results
- ZDI-26-329 (CVE-2026-45492)
- ZDI-26-330 (CVE-2026-45494)
- ZDI-26-331 (CVE-2026-45495)
- MSRC — CVE-2026-45492
- MSRC — CVE-2026-45494
- MSRC — CVE-2026-45495
- Microsoft Learn — Release notes for Microsoft Edge Security Updates
- OpenCVE — CVE-2026-45492
- OpenCVE — CVE-2026-45494
- BleepingComputer — Windows 11 and Microsoft Edge hacked on first day of Pwn2Own Berlin 2026
- iThome — Cobertura de DEVCORE en Pwn2Own y Pwnie Awards
- Hacker News — Discusión