Recientemente, se ha emitido una alerta de ciberseguridad debido a múltiples vulnerabilidades encontradas en la librería glibc de distintas distribuciones Linux. La librería glibc, también conocida como GNU C Library, es una biblioteca de software libre que proporciona las funciones básicas del lenguaje de programación C para sistemas operativos Unix y similares a Unix. Es decir, es la implementación de la biblioteca estándar C más utilizada en el mundo.
Las vulnerabilidades encontradas en la librería glibc han sido clasificadas como de alto riesgo, lo que significa que podrían ser explotadas por ciberdelincuentes para llevar a cabo ataques cibernéticos de diversa índole. Estas vulnerabilidades permiten la ejecución remota de código malicioso, lo que podría comprometer la seguridad de los sistemas afectados.
Análisis de la vulnerabilidad CVE-2023-6246
Estas vulnerabilidades son conocidas como «vulnerabilidades de desbordamiento de búfer», se producen cuando una aplicación no valida adecuadamente los límites de los datos que recibe, permitiendo que un atacante sobrescriba áreas de memoria críticas. A pesar que es una vulnerabilidad que viene desde el 2022, ha sido presentada una alerta el 30 de enero del 2024 que afecta directamente. Además, ha sido confirmado que Debian 12 y 13, Ubuntu 23.04 y 23.10, y Fedora de la versión 37 hasta la 39 son vulnerables a este desbordamiento de buffer.
¿Qué es un desbordamiento de búfer basado en el montículo?
Es un tipo de vulnerabilidad de memoria que se produce cuando un programa escribe más datos de los que caben en un búfer de memoria. Esto puede corromper datos adyacentes al búfer, lo que puede provocar fallos en el programa o la ejecución de código arbitrario.
¿Qué es la función __vsyslog_internal()?
La función __vsyslog_internal() es una función interna de la biblioteca glibc que se utiliza para registrar mensajes en el sistema. Esta función es llamada por las funciones syslog() y vsyslog(), que son las funciones estándar de C para registrar mensajes.
¿Cómo se produce la vulnerabilidad?
La vulnerabilidad se produce cuando se cumplen las siguientes condiciones:
- No se ha llamado a la función openlog() o se ha llamado con el argumento de identificación establecido en NULL.
- El nombre del programa es mayor de 1024 bytes.
En estas condiciones, la función __vsyslog_internal() puede escribir más datos de los que caben en el búfer de memoria asignado para el nombre del programa. Esto puede corromper datos adyacentes al búfer, lo que puede permitir a un atacante:
- Provocar un fallo en la aplicación.
- Escalar sus privilegios para obtener privilegios de root.
A partir de la vulnerabilidad CVE-2023-6246 se encontraron dos vulnerabilidades más en la biblioteca glibc:
1. CVE-2023-6245: Esta vulnerabilidad es similar a CVE-2023-6246, pero se produce en la función syslog(). Al igual que CVE-2023-6246, esta vulnerabilidad puede ser explotada por un atacante para obtener acceso no autorizado al sistema.
2. CVE-2023-6247: Esta vulnerabilidad es un desbordamiento de búfer basado en el montículo en la función __nss_getpwnam_r(). Esta vulnerabilidad puede ser explotada por un atacante para provocar un fallo en la aplicación o para obtener acceso no autorizado al sistema.
Las versiones de glibc afectadas por la vulnerabilidad CVE-2023-6246 son: glibc 2.36 y versiones anteriores. Es por ello, que es importante actualizar a la última versión de glibc (2.39 o superior) para protegerte de esta vulnerabilidad. Para verlo desde tu terminal: sudo ldd –version.
Ante estas vulnerabilidades, se recomienda seguir una serie de medidas preventivas para mitigar los riesgos. En primer lugar, es fundamental mantener actualizados los sistemas operativos y aplicaciones, ya que las actualizaciones suelen incluir parches de seguridad que solucionan posibles vulnerabilidades. Además, realizar análisis de vulnerabilidades y auditorías de seguridad de forma regular, para identificar posibles puntos débiles y corregirlos antes de que puedan ser explotados.
Asimismo, es beneficioso contar con una solución de antivirus y firewall actualizados, que ayuden a detectar y bloquear posibles ataques cibernéticos. Estas herramientas son fundamentales para la protección de los sistemas y datos sensibles.
Es importante recordar que la seguridad cibernética es un esfuerzo continuo y que la colaboración entre la comunidad de Linux, los desarrolladores de software y los usuarios finales es esencial para mantener la integridad y la seguridad de los sistemas operativos basados en Linux.
Para más artículos como este, únete a nuestra comunidad de Informática Forense, Pentester, Osint y Jurídico
https://t.me/LAZARUS_VENEZUELA
Fuentes consultadas: