Noticia Vulnerabilidades en apport y systemd-coredump exponen volcados de memoria

vulnerabilidad


Hace pocos días, la firma de ciberseguridad Qualys dio a conocer mediante una publicación de blog el descubrimiento de dos graves vulnerabilidades que afectan directamente a apport y systemd-coredump, herramientas ampliamente utilizadas en sistemas Linux para gestionar volcados de memoria tras fallos en procesos.

Las fallas, identificadas como CVE-2025-5054 y CVE-2025-4598, exponen a diversas distribuciones a riesgos serios de filtración de datos confidenciales almacenados en la memoria de procesos privilegiados.

El riesgo oculto en los volcados​


Tanto apport (usado principalmente en Ubuntu) como systemd-coredump (empleado en Red Hat, Fedora y otras distribuciones) se encargan de procesar los archivos de núcleo generados tras un fallo de sistema. Sin embargo, estas herramientas presentan una condición de carrera que puede ser aprovechada por un atacante para acceder a estos archivos, incluso cuando provienen de aplicaciones suid o procesos del sistema con privilegios elevados.

Los volcados de memoria pueden contener información extremadamente sensible, como hashes de contraseñas extraídas desde /etc/shadow, claves de cifrado en caché o datos de autenticación. Si un atacante logra explotar estas vulnerabilidades, puede leer dichos volcados como usuario normal, eludiendo las restricciones que deberían limitar el acceso únicamente al administrador del sistema.

La explotación de vulnerabilidades en Apport y systemd-coredump puede comprometer gravemente la confidencialidad. Las consecuencias incluyen tiempo de inactividad operativa, daño a la reputación y posible incumplimiento de las normativas.

¿Cómo se explotan las fallas en apport?​


El vector de ataque sobre apport involucra una técnica sofisticada:

  • Se lanza un proceso con privilegios suid, como unix_chkpwd, que accede a datos sensibles en memoria.
  • Antes de que termine su ejecución, se interrumpe con una señal como SIGSEGV para forzar un fallo.
  • Esto activa el sistema de volcados de memoria de Ubuntu, que lanza automáticamente apport.
  • En el breve intervalo antes de que apport analice el volcado, el atacante reemplaza el proceso suid con uno normal, utilizando espacios de nombres separados y manipulaciones de PID para engañar al sistema.
  • Como resultado, apport procesa y guarda el volcado de memoria bajo permisos normales, permitiendo que el usuario atacante acceda libremente a su contenido.

Este método se ha demostrado exitoso en Ubuntu 24.04, lo que indica que otras versiones y distribuciones con un comportamiento similar también podrían estar en riesgo.

Ataques dirigidos a systemd-coredump: menos pasos, mismo peligro​


En el caso de systemd-coredump, el ataque es más directo y no requiere reemplazar procesos dentro de espacios de nombres independientes. Basta con provocar una coincidencia entre AT_UID y AT_EUID, lo cual permite manipular la interpretación del proceso que provocó el fallo. Aunque systemd-coredump es más rápido en iniciar, por estar escrito en C, es posible ralentizarlo artificialmente. Al pasarle una gran cantidad de argumentos al proceso suid, se incrementa el tiempo de procesamiento del archivo cmdline, generando el intervalo necesario para ejecutar el reemplazo.

Además, los investigadores encontraron que systemd-coredump no emplea correctamente el marcador %d en core_pattern, lo que permite lanzar ataques también contra procesos de sistema que no son suid, como sshd-session, sd-pam o cron. Esta omisión abre la puerta a extraer claves privadas, datos del stack, hashes de contraseñas y valores usados para eludir protecciones como ASLR.

Mitigación y medidas recomendadas​


Dada la gravedad del problema, se recomienda tomar medidas inmediatas:

  • Desactivar los volcados de memoria para programas suid: Esto se puede lograr configurando el parámetro suid_dumpable a 0, lo cual impide que estos procesos generen volcados accesibles.
  • Actualizar los paquetes afectados: Las distribuciones más importantes ya están preparando actualizaciones para corregir estas vulnerabilidades.

Aunque mitigar la vulnerabilidad es un primer paso, se menciona que la solución requiere modificaciones en el Kernel de Linux. En particular, se sugiere implementar un sistema que utilice pidfd en lugar de identificadores pid tradicionales, ya que pidfd está vinculado a procesos específicos y no se reasigna. Esto impediría que un proceso sea suplantado durante la ventana de tiempo entre el fallo y la creación del volcado.

Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Continúar leyendo...