La vulnerabilidad CVE-2022-0847 fue descubierta en abril de 2021, pero tomó algunos meses descubrir qué estaba sucediendo realmente. Kellermann explicó que la vulnerabilidad afecta al kernel de Linux 5.8 y versiones posteriores (también en dispositivos Android que ejecutan aplicaciones no confiables), pero se solucionó en Linux 5.16.11, 5.15.25 y 5.10.102 (la última versión liberada ha sido la 5.16.12).

Muchos servidores continúan ejecutando kernels obsoletos, por lo que se hace se hace indispensable actualizar actualizar para no tener el sistema operativo de código abierto vulnerable.

Descubierto por casualidad

Este fallo de seguridad fue descubierto por Max Kellermann, de la empresa matriz de CM4all, Ionos, tras recibir repetidamente tickets de soporte sobre archivos comprimidos dañados en los registros de acceso al servidor web de uno de sus clientes.

kernel-linux-pinguino
El exploit afectaba al kernel de Linux 5.8 y superior

Todo comenzó hace un año con un ticket de soporte sobre archivos corruptos. Un cliente se quejó de que los registros de acceso que descargaban no podían descomprimirse. Y, de hecho, había un archivo de registro corrupto en uno de los servidores de registro; podía descomprimirse, pero Gzip informó un error de CRC (verificación por redundancia cíclica, un código de detección de errores usado para detectar cambios accidentales en los datos). No pude explicar por qué estaba corrupto, pero asumí que el proceso de división nocturna se había bloqueado y dejado un archivo corrupto. Arreglé el CRC del archivo manualmente, cerré el ticket y pronto me olvidé del problema.

Meses después, esto sucedió una y otra vez. Cada vez que el contenido del archivo parecía correcto, solo el CRC al final del archivo era incorrecto. Ahora, con varios archivos corruptos, pude profundizar y encontré un tipo sorprendente de corrupción. Surgió un patrón”.

Los errores del sistema operativo y las vulnerabilidades a nivel de aplicación como estas pueden permitir a los atacantes escalar los privilegios, moverse lateralmente dentro de la red, ejecutar código arbitrario y apoderarse por completo de otros dispositivos.

Estudio del exploit y búsqueda de soluciones

Para aprovechar la vulnerabilidad, Kellermann estudió el fallo y vio que hay ciertas limitaciones como que el atacante debe tener permisos de lectura, el desplazamiento no debe estar en un límite de página, la escritura no puede cruzar un límite de página y el archivo no se puede cambiar de tamaño.

El informe de error, el exploit y el parche fueron enviados al equipo de seguridad del kernel de Linux por Kellermann el 20 de febrero de 2022. El error se reprodujo en Google Pixel 6 y se envió un informe de error al equipo de seguridad de Android. Linux lanzó versiones estables corregidas (5.16.11, 5.15.25 y 5.10.102) el 23 de febrero y Google fusionó la corrección de errores de Kellermann en el kernel de Android el 24 de febrero.

Mike Parkin, de Vulcan Cyber, dijo que cualquier exploit que proporcione acceso de nivel root a un sistema Linux es problemático:

“Un atacante que obtiene el root obtiene el control total sobre el sistema de destino y puede aprovechar ese control para llegar a otros sistemas. El factor atenuante de esta vulnerabilidad es que requiere acceso local, lo que reduce ligeramente el riesgo”, dijo Parkin.

 

Fuente: CM4All | adslzone