Microsoft descobre falhas na biblioteca ncurses que afetam sistemas Linux e macOS. Um conjunto de falhas de corrupção de memória foi descoberto na biblioteca de programação ncurses (abreviação de novas maldições ) que podem ser exploradas por agentes de ameaças para executar código malicioso em sistemas Linux e macOS vulneráveis.
“Usando o envenenamento por variáveis ??de ambiente, os invasores podem encadear essas vulnerabilidades para elevar privilégios e executar código no contexto do programa visado ou realizar outras ações maliciosas”, disseram os pesquisadores da Microsoft Threat Intelligence Jonathan Bar Or, Emanuele Cozzi e Michael Pearse em um relatório técnico publicado.
As vulnerabilidades, rastreadas coletivamente como CVE-2023-29491 (pontuação CVSS de 7,8), foram corrigidas em abril de 2023. A Microsoft disse que também trabalhou com a Apple para resolver os problemas específicos do macOS relacionados a essas falhas.
Microsoft descobre falhas na biblioteca ncurses que afetam sistemas Linux e macOS
Variáveis ??de ambiente são valores definidos pelo usuário que podem ser usados ??por vários programas em um sistema e podem afetar a maneira como eles se comportam no sistema. A manipulação das variáveis ??pode fazer com que os aplicativos executem operações que de outra forma não seriam autorizadas.
A auditoria e difusão de código da Microsoft descobriram que a biblioteca ncurses procura por diversas variáveis ??de ambiente, incluindo TERMINFO, que podem ser envenenadas e combinadas com as falhas identificadas para alcançar o escalonamento de privilégios. Terminfo é um banco de dados que permite aos programas usar terminais de exibição de maneira independente do dispositivo.
As falhas abrangem um vazamento de informações de pilha, uma confusão de tipo de string parametrizada, um erro off-by-one, um heap fora dos limites durante a análise do arquivo de banco de dados terminfo e uma negação de serviço com strings canceladas.
“As vulnerabilidades descobertas poderiam ter sido exploradas por invasores para elevar privilégios e executar código dentro do contexto de um programa direcionado”, disseram os pesquisadores. “No entanto, obter o controle de um programa através da exploração de vulnerabilidades de corrupção de memória requer um ataque em vários estágios”.
“As vulnerabilidades podem ter precisado ser encadeadas para que um invasor elevasse privilégios, como explorar o vazamento de informações da pilha para obter primitivas de leitura arbitrárias, além de explorar o estouro de heap para obter uma primitiva de gravação.”