Actualización de Exim 4.94.2 con correcciones para 10 vulnerabilidades explotables de forma remota

Se ha publicado el lanzamiento del servidor de correo Exim 4.94.2 con la eliminación de 21 vulnerabilidades (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), que fueron identificadas por Qualys y presentadas bajo el nombre en clave 21 Clavos. 10 problemas se pueden explotar de forma remota (incluida la ejecución de código con derechos de root) mediante la manipulación de comandos SMTP al interactuar con el servidor.

Todas las versiones de Exim, cuyo historial se rastrea en Git desde 2004, se ven afectadas por el problema. Se han preparado prototipos funcionales de exploits para 4 vulnerabilidades locales y 3 problemas remotos. Los exploits para vulnerabilidades locales (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) le permiten elevar sus privilegios al usuario root. Dos problemas remotos (CVE-2020-28020, CVE-2020-28018) permiten que el código se ejecute sin autenticación como usuario Exim (luego puede obtener acceso raíz explotando una de las vulnerabilidades locales).

La vulnerabilidad CVE-2020-28021 permite la ejecución remota inmediata de código con derechos de root, pero requiere acceso autenticado (el usuario debe establecer una sesión autenticada, después de la cual puede explotar la vulnerabilidad mediante la manipulación del parámetro AUTH en el comando MAIL FROM). El problema se debe al hecho de que un atacante puede lograr la sustitución de cadenas en el encabezado de un archivo spool escribiendo el valor del remitente autenticado sin escapar correctamente los caracteres especiales (por ejemplo, pasando el comando “MAIL FROM:<> AUTH=Raven+0AReyes ”).

Además, cabe señalar que otra vulnerabilidad remota, CVE-2020-28017, se puede explotar para ejecutar código con derechos de usuario "exim" sin autenticación, pero requiere más de 25 GB de memoria. Para las 13 vulnerabilidades restantes también se podrían preparar exploits, pero aún no se ha trabajado en esta dirección.

Los desarrolladores de Exim fueron notificados de los problemas en octubre del año pasado y pasaron más de 6 meses desarrollando soluciones. Se recomienda a todos los administradores que actualicen urgentemente Exim en sus servidores de correo a la versión 4.94.2. Todas las versiones de Exim anteriores a la 4.94.2 han sido declaradas obsoletas. La publicación de la nueva versión se coordinó con distribuciones que publicaban simultáneamente actualizaciones de paquetes: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE y Fedora. RHEL y CentOS no se ven afectados por el problema, ya que Exim no está incluido en su repositorio de paquetes estándar (EPEL aún no tiene una actualización).

Vulnerabilidades eliminadas:

  • CVE-2020-28017: Desbordamiento de enteros en la función recibir_add_recipient();
  • CVE-2020-28020: Desbordamiento de enteros en la función recibir_msg();
  • CVE-2020-28023: Lectura fuera de límites en smtp_setup_msg();
  • CVE-2020-28021: Sustitución de nueva línea en el encabezado del archivo spool;
  • CVE-2020-28022: Escritura y lectura en un área fuera del búfer asignado en la función extract_option();
  • CVE-2020-28026: Truncamiento y sustitución de cadenas en spool_read_header();
  • CVE-2020-28019: Fallo al restablecer un puntero de función después de que ocurre un error BDAT;
  • CVE-2020-28024: Desbordamiento insuficiente del búfer en la función smtp_ungetc();
  • CVE-2020-28018: Acceso al búfer de uso posterior a la liberación en tls-openssl.c
  • CVE-2020-28025: Una lectura fuera de límites en la función pdkim_finish_bodyhash().

Vulnerabilidades locales:

  • CVE-2020-28007: Ataque de enlace simbólico en el directorio de registro de Exim;
  • CVE-2020-28008: Ataques al directorio spool;
  • CVE-2020-28014: Creación de archivos arbitrarios;
  • CVE-2021-27216: Eliminación arbitraria de archivos;
  • CVE-2020-28011: Desbordamiento del búfer en queue_run();
  • CVE-2020-28010: Escritura fuera de límites en main();
  • CVE-2020-28013: Desbordamiento del búfer en la función parse_fix_phrase();
  • CVE-2020-28016: Escritura fuera de límites en parse_fix_phrase();
  • CVE-2020-28015: Sustitución de nueva línea en el encabezado del archivo spool;
  • CVE-2020-28012: Falta el indicador de cierre en ejecución para una canalización privilegiada sin nombre;
  • CVE-2020-28009: Desbordamiento de enteros en la función get_stdinput().



Fuente: opennet.ru

Añadir un comentario