Se ha descubierto un conjunto de fallas de corrupción de memoria en la biblioteca de programación ncurses (abreviatura de new curses) que podrían ser explotadas por actores de amenazas para ejecutar código malicioso en sistemas Linux y macOS vulnerables.
“Usando el comprometimiento de variables de entorno, los atacantes podrían encadenar estas vulnerabilidades para elevar los privilegios y ejecutar código en el contexto del programa objetivo o realizar otras acciones maliciosas”, dijeron los investigadores de Microsoft Threat Intelligence Jonathan Bar Or, Emanuele Cozzi y Michael Pearse en un informe técnico publicado.
Las vulnerabilidades, rastreadas colectivamente como CVE-2023-29491 (puntuación CVSS de 7.8), se han abordado a partir de abril de 2023. Microsoft dijo que también trabajó con Apple para remediar los problemas específicos de macOS relacionados con estos defectos.
Las variables de entorno son valores definidos por el usuario que pueden ser utilizados por varios programas en un sistema y pueden afectar a la manera en que se comportan en el sistema. La manipulación de las variables puede hacer que las aplicaciones realicen operaciones no autorizadas.
La auditoría de código y fuzzing de Microsoft encontró que la biblioteca ncurses busca varias variables de entorno, incluida TERMINFO, que podrían comprometerse y combinarse con las fallas identificadas para lograr la escalada de privilegios. Terminfo es una base de datos que permite a los programas utilizar terminales de visualización de una manera independiente del dispositivo.
“Las vulnerabilidades descubiertas podrían haber sido explotadas por los atacantes para elevar los privilegios y ejecutar código dentro del contexto de un programa específico”, dijeron los investigadores. “No obstante, obtener el control de un programa mediante la explotación de vulnerabilidades de corrupción de memoria requiere un ataque de varias etapas”.
“Las vulnerabilidades pueden haber necesitado ser encadenadas para que un atacante eleve los privilegios, como explotar la fuga de información de la pila para obtener primitivas de lectura arbitrarias junto con explotar el desbordamiento del montón para obtener una primitiva de escritura”.