Introducción
- Esta publicación del blog explica el proceso de descubrimiento de las vulnerabilidades CVE-2024-6778 y CVE-2024-5836 en el navegador web Chromium.
- Estas vulnerabilidades permiten escapar del sandbox a través de extensiones del navegador.
- Google pagó $20,000 por este reporte de errores.
WebUI y el sandbox de Chrome
- Chromium ejecuta código no confiable en un entorno sandbox, permitiendo solo interacciones limitadas.
- WebUI se usa para mostrar la GUI de Chromium y tiene permisos para acceder a ciertas API internas.
- El código que se ejecuta en páginas WebUI puede omitir el sandbox, por lo que un atacante podría aprovecharlo.
Políticas empresariales
- El sistema de políticas empresariales de Chromium sirve para aplicar de forma forzada ciertas configuraciones en dispositivos propiedad de empresas o escuelas.
- Las políticas de usuario se aplican a un usuario específico o a una instancia concreta del navegador, y pueden configurarse localmente.
WebUI de políticas
- Chromium tiene una WebUI para ver las políticas aplicadas actualmente al dispositivo.
- En esta página existe una función no oficial para editar políticas.
Explotación de la página de prueba de políticas
- Se encontró una mención a la página de prueba de políticas en las notas de lanzamiento de Chrome v117.
- Esta página ofrece una forma no oficial de configurar políticas.
Escape del sandbox
- Es posible escapar del sandbox abusando de la capacidad de establecer políticas de usuario arbitrarias.
- Se pueden ejecutar comandos de shell arbitrarios usando la función de browser switcher.
Abuso de la API de Devtools
- Se encontró una forma de ejecutar JS automáticamente en la página
chrome://policy mediante una extensión maliciosa de Chrome.
- Se puede ejecutar código en una página WebUI usando la API
chrome.devtools.inspectedWindow.reload().
Conclusión
- Esto muestra cómo varios errores simples pueden acumularse y convertirse en una vulnerabilidad de alta gravedad.
- El código antiguo no siempre es seguro, y debe considerarse la posibilidad de que aparezcan errores similares.
Resumen de GN⁺
- Esta publicación del blog explica en detalle el proceso de descubrir y reportar vulnerabilidades en Chromium.
- Las vulnerabilidades permiten escapar del sandbox mediante extensiones del navegador, y Google otorgó una recompensa de $20,000.
- El artículo ofrece información útil para investigadores de seguridad e ingenieros de software, además de lecciones para prevenir vulnerabilidades similares.
- Como otro proyecto con funciones similares, se puede recomendar las funciones de seguridad de Firefox.
1 comentarios
Comentarios de Hacker News
Esto le recordó una ocasión en la que, al depurar el shell "crosh" de Chrome OS, usó la misma API para eludir las protecciones del sistema operativo y obtener acceso root. El autor de este artículo superó obstáculos aún más difíciles. Gran trabajo
Para evitar que la URL de la página sea reemplazada por ${url}, se puede poner después de # para convertirla en un comentario. Se pregunta si existe una lógica de validación sobre si la URL debe pasarse a AlternativeBrowserParameters
Excelente artículo y excelente trabajo. Se pudo sentir la emoción del proceso de descubrimiento. Una recompensa bien merecida
Una cadena de vulnerabilidades genial y un gran artículo. También fue bueno el análisis del código vulnerable. Siempre impresionan trucos simples como "Presiona F12 para intentarlo de nuevo"
Ya es demasiado tarde para profundizar en los problemas de validación de WebUI, pero reconoce a quien resolvió este problema. Es común cuestionar y desconfiar de la cadena de herramientas respecto de lo que distribuimos, pero al mismo tiempo depositamos demasiada confianza en herramientas de desarrollo convenientes de grandes empresas como Google o MS. Principalmente porque queremos concentrarnos en escribir y probar nuestro propio código
De verdad, una de las mejores cosas que he leído. Un trabajo de investigación muy ingenioso
Dice que Allen es un estudiante de secundaria interesado en programación, desarrollo web y ciberseguridad. Muy impresionante
El proyecto Chromium decidió eliminar chrome://net-internals porque la página era demasiado compleja. Y agregó chrome://policy, ofreciendo un soporte incompleto para editar JSON
Un artículo realmente genial, se sintió como una novela de suspenso. Una cadena de vulnerabilidades excelente