Fue hallada una vulnerabilidad en e2fsck al procesar directorios especialmente diseñados

Vulnerabilidad

e2fsck es una herramienta fsck perteneciente al paquete e2fsprogs que mantiene un conjunto de utilidades para mantenimiento de los sistemas de ficheros ext2, ext3 y ext4. Debido a que estos son generalmente los sistemas de archivos por defecto en las distribuciones Linux, comúnmente se considera al paquete e2fsprogs software esencial.

e2fsck se encarga de realizar la búsqueda y corrección de las inconsistencias en los sistemas de ficheros en Linux. En esta utilidad recientemente fue hallada una vulnerabilidad la cual ya se encuentra catalogada en CVE-2019-5188 y fue la investigadora Lilith, de Cisco Talos quien ha descubierto la vulnerabilidad de tipo ejecución de código.

Esta vulnerabilidad encontrada permite a atacante ejecutar código diseñado por esté mientras la utilidad e2fsck escanea el sistema de archivos que contiene los directorios especialmente diseñados.

La vulnerabilidad CVE-2019-5188 se confirmó en versiones de e2fsprogs 1.43.3, 1.43.4, 1.43.5, 1.43.6, 1.43.7, 1.43.8, 1.43.9, 1.44.0, 1.44.1, 1.44.2, 1.44.3, 1.44.4, 1.44.5, 1.44.6, 1.45.0, 1.45.1, 1.45.2, 1.45.3, 1.45.4.

La vulnerabilidad es causada por un error en la función mutate_name () del archivo rehash.c, que se utiliza al reconstruir tablas hash relacionadas con el directorio que proporcionan una asignación al directorio de todos los archivos que contiene.

Sobre la vulnerabilidad CVE-2019-5188

En el informe por parte de la investigadora, dice que:

Dentro de la implementación de directorios en ext2,3,4 se encuentran muchas estructuras de datos necesarias para optimizar el tamaño de los archivos en el disco

Existe una vulnerabilidad de ejecución de código en la funcionalidad de cambio de directorio de E2fsprogs e2fsck 1.45.4. Un directorio ext4 especialmente diseñado puede causar una escritura fuera de los límites en la pila, lo que resulta en la ejecución del código. Un atacante puede dañar una partición para activar esta vulnerabilidad.

El daño a la estructura relacionada con el directorio hash_entry puede hacer que el atacante escriba en un área fuera del búfer asignado.

Si se encuentran varios archivos con el mismo nombre en la tabla hash de un enlace de directorio, la utilidad e2fsck cambia el nombre de los archivos duplicados con ~ 0, ~ 1, etc., agregados al nombre. Para el almacenamiento temporal de un nuevo nombre con un cambio de nombre similar, se asigna un búfer de 256 bytes en la pila.

El tamaño de los datos copiados está determinado por la expresiónentry-> name_len & 0xff”, pero el valor entry-> name_len se carga desde la estructura en el disco y no se calcula en función del tamaño real del nombre.

Si el tamaño es cero, el índice de matriz toma el valor -1 y se crean condiciones para el desbordamiento de enteros a través del límite inferior del búfer (desbordamiento de enteros) y la reescritura de otros datos en la pila con el valor “~ 0”.

Para los sistemas de 64 bits, la explotación de la vulnerabilidad se considera improbable y no requiere restricciones en el tamaño de la pila (ulimit -s ilimitado).

Para sistemas de 32 bits, la operación se considera posible, pero el resultado depende en gran medida de cómo el compilador ejecutó el ejecutable.

Para llevar a cabo un ataque, un atacante necesita corromper los datos en la partición del sistema de archivos ext2, ext3 o ext4 de cierta manera.

Dado que esta operación requiere privilegios de superusuario, la vulnerabilidad representa una amenaza cuando la utilidad e2fsck verifica unidades externas o imágenes FS recibidas desde el exterior.

Es importante mencionar que esta vulnerabilidad no puede ser explotada remotamente, por lo que solo se limita a ser explotada localmente ya que el atacante debe tener credenciales de autenticación y autenticarse con éxito en el sistema.

El descubrimiento de la vulnerabilidad fue publicado el primer día de este año y el aviso se compartió con la comunidad. La investigadora que descubrió esta vulnerabilidad no ha compartido ni los detalles técnicos ni un exploit públicamente. Por lo que la vulnerabilidad fue corregida en la actualización de e2fsck 1.45.5.

De momento en las siguientes distribuciones (Debian, Ubuntu, Arch Linux, SUSE/openSUSE, RHEL) el problema permanece sin corregir a pesar de que el informe se realizó ya hace más de una semana.

Si quieres conocer más al respecto sobre la vulnerabilidad encontrada puedes conocer la información y detalles al respecto dirigiéndote al siguiente enlace.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.