
Presentación educativa que analiza CVE-2021-21193, una vulnerabilidad de use-after-free en el motor Blink de Google Chrome, incluyendo detalles de explotación y consejos de mitigación.
Introducción al Hacking
Presentaciones de casos de estudio de vulnerabilidades
Marzo 2022
Mehrzad Khodashenas, Setareh Sheikholeslamzadeh
Entrada del Diccionario CVE:
CVE-2021-21193
Fecha de publicación en NVD:
03/16/2021
Última modificación en NVD:
12/03/2021
Fuente:
Chrome
| atributo | valor |
|---|
| Severidad | 7 |
| CVSS | (AV:N/AC:M/Au:N/C:P/I:P/A:P) |
| Publicado | 03/05/2021 |
| Creado | 03/06/2021 |
| Añadido | 03/05/2021 |
| Modificado | 04/09/2021 |
Un use-after-free en Blink en Google Chrome anterior a 89.0.4389.90 permitía a un atacante remoto explotar potencialmente la corrupción del heap mediante una página HTML manipulada.
enter image description here
CVE, abreviatura de Common Vulnerabilities and Exposures, es una lista de fallos de seguridad informática divulgados públicamente. Cuando alguien se refiere a un CVE, se refiere a un fallo de seguridad al que se le ha asignado un número de ID de CVE. Los avisos de seguridad emitidos por proveedores e investigadores casi siempre mencionan al menos un ID de CVE. Los CVE ayudan a los profesionales de TI a coordinar sus esfuerzos para priorizar y abordar estas vulnerabilidades y así hacer que los sistemas informáticos sean más seguros. fuente

El equipo de Chrome publicó un anuncio en marzo de 2021 indicando que si usas Google Chrome en cualquiera de tus dispositivos, es urgente que lo actualices de inmediato. Hay actualizaciones frecuentes de Google Chrome, pero el parche más reciente, la compilación estable 89.0.4389.90, corrige varias vulnerabilidades, tres de las cuales tienen una calificación de severidad alta, y una de ellas ya ha sido explotada por ciberdelincuentes y hackers. fuente Fue una de las vulnerabilidades con calificación de severidad alta llamada CVE-2021-21193. Es una vulnerabilidad en el motor del navegador de Google Chrome, Blink, el componente principal responsable de convertir el código HTML en las páginas web bien diseñadas que estás acostumbrado a navegar. Este problema afecta a cierto procesamiento no identificado en el componente Blink y la manipulación con una entrada desconocida conduce a una vulnerabilidad de corrupción de memoria. Esta vulnerabilidad, que ha sido explotada por malhechores, sugiere que todos los usuarios deben actualizar a la versión 89.0.4389.90. Es una vulnerabilidad de use-after-free, lo que significa que Blink tenía problemas para liberar memoria. fuente
La debilidad fue divulgada el 03/05/2021. No se requiere ninguna forma de autenticación para una explotación exitosa, pero exige que la víctima realice algún tipo de interacción con el usuario. También hay un precio estimado para un exploit de alrededor de USD $5k-$25k calculado el 03/28/2021. https://vuldb.com/?id.170687
Aunque esto parece trivial y mundano, las consecuencias más comunes de una vulnerabilidad de use-after-free son la corrupción de datos y la ejecución arbitraria de código, lo que, según la descripción de la vulnerabilidad CVE-2021-21193 en la National Vulnerability Database, puede permitir "a un atacante remoto explotar potencialmente la corrupción del heap mediante una página HTML manipulada". fuente
Use-After-Free (UAF) es una vulnerabilidad relacionada con el uso incorrecto de la memoria dinámica durante la operación de un programa. Si después de liberar una ubicación de memoria, un programa no limpia el puntero a esa memoria, un atacante puede usar el error para hackear el programa.
Las vulnerabilidades UAF se derivan del mecanismo de asignación de memoria dinámica. A diferencia de la pila, la memoria dinámica (también conocida como heap) está diseñada para almacenar grandes cantidades de datos. Los programadores pueden asignar bloques de tamaño arbitrario en ella, que las tareas dentro de un programa pueden luego modificar o liberar y devolver al heap para su uso posterior por otras tareas en el mismo programa.
Los programas deben verificar continuamente qué áreas del heap están libres y cuáles están ocupadas, ya que la memoria dinámica se reasigna con frecuencia. Los encabezados ayudan haciendo referencia a las áreas de memoria asignadas. La dirección inicial del bloque apropiado está contenida en cada encabezado. Los errores UAF surgen cuando los programas no gestionan estos encabezados correctamente.
Los punteros en un programa se refieren a conjuntos de datos en la memoria dinámica. Si un conjunto de datos se elimina o se mueve a otro bloque pero el puntero, en lugar de ser limpiado (establecido en null), continúa refiriéndose a la memoria ahora liberada, el resultado es un puntero colgante. Si el programa luego asigna este mismo bloque de memoria a otro objeto (por ejemplo, datos introducidos por un atacante), el puntero colgante ahora hará referencia a este nuevo conjunto de datos. En otras palabras, las vulnerabilidades UAF permiten la sustitución de código.
Un atacante puede usar UAF para pasar código arbitrario, o una referencia a él, a un programa y navegar hasta el inicio del código usando un puntero colgante. De esta manera, el ciberdelincuente puede obtener control del sistema de la víctima ejecutando código malicioso. fuente
Un investigador de seguridad anónimo reportó CVE-2021-211193 el 9 de marzo, y Google se apresuró a lanzar un parche en solo tres días. Esa prisa podría atribuirse a la explotación de la vulnerabilidad en el mundo real; los delincuentes ya han utilizado la vulnerabilidad, y esa es razón suficiente para que todos parcheen Google Chrome lo antes posible. fuente
Google generalmente no publica información sobre vulnerabilidades hasta después de que han sido parcheadas, y la vulnerabilidad CVE-2021-21193 fue parcheada no más de tres días después de que fuera reportada por un investigador de seguridad anónimo, lo que muy probablemente significa que la vulnerabilidad ya había sido explotada en una situación del mundo real. Una buena regla general es que si una gran empresa tecnológica como Google se toma en serio un problema de seguridad, el resto de nosotros también debería hacerlo.
Pero hay otra conclusión importante aquí, y es que estos gigantes tecnológicos, y sus productos, no son perfectos; como el resto de nosotros, también son parte de la carrera constante para mantener los sistemas y herramientas seguros para usuarios finales como tú. Es absolutamente vital mantener tu software parcheado con las últimas actualizaciones de sus desarrolladores, ya que las actualizaciones más recientes son las que han sido diseñadas para minimizar la amenaza de las ciberamenazas que evolucionan y avanzan rápidamente. fuente