Vulnerabilidade crítica no Ubuntu é corrigida após dez anos
- Cyber Security Brazil
- 20 de nov. de 2024
- 2 min de leitura

Cinco vulnerabilidades de escalação de privilégios locais (LPE) foram descobertas na utilidade needrestart usada no Ubuntu Linux, que foi introduzida há mais de 10 anos na versão 21.04.
As falhas foram descobertas pela Qualys e são rastreadas como CVE-2024-48990, CVE-2024-48991, CVE-2024-48992, CVE-2024-10224 e CVE-2024-11003. Elas foram introduzidas na versão 0.8 do needrestart, lançada em abril de 2014, e corrigidas apenas ontem, na versão 3.8.
O needrestart é uma utilidade comum no Linux, incluindo no Ubuntu Server, para identificar serviços que precisam ser reiniciados após atualizações de pacotes, garantindo que esses serviços utilizem as versões mais atualizadas das bibliotecas compartilhadas.
As cinco falhas descobertas pela Qualys permitem que atacantes com acesso local a um sistema Linux vulnerável elevem seus privilégios para root sem interação do usuário.
Informações detalhadas sobre as falhas foram disponibilizadas em um arquivo de texto separado, mas um resumo pode ser encontrado abaixo:
CVE-2024-48990: O needrestart executa o interpretador Python com uma variável de ambiente PYTHONPATH extraída de processos em execução. Se um atacante local controlar essa variável, ele pode executar código arbitrário como root durante a inicialização do Python, plantando uma biblioteca compartilhada maliciosa.
CVE-2024-48992: O interpretador Ruby usado pelo needrestart é vulnerável ao processar uma variável de ambiente RUBYLIB controlada pelo atacante. Isso permite que atacantes locais executem código Ruby arbitrário como root, injetando bibliotecas maliciosas no processo.
CVE-2024-48991: Uma condição de corrida no needrestart permite que um atacante local substitua o binário do interpretador Python que está sendo validado por um executável malicioso. Cronometrando a substituição cuidadosamente, eles podem enganar o needrestart a executar seu código como root.
CVE-2024-10224: O módulo ScanDeps do Perl, usado pelo needrestart, trata de forma inadequada os nomes de arquivos fornecidos pelo atacante. Um atacante pode elaborar nomes de arquivos que se assemelham a comandos de shell (por exemplo, comando|) para executar comandos arbitrários como root quando o arquivo é aberto.
CVE-2024-11003: A dependência do needrestart no módulo ScanDeps do Perl o expõe a vulnerabilidades no próprio ScanDeps, onde o uso inseguro de funções eval() pode levar à execução de código arbitrário ao processar entradas controladas pelo atacante.
É importante notar que, para explorar essas falhas, um atacante precisaria ter acesso local ao sistema operacional através de malware ou uma conta comprometida, o que mitiga um pouco o risco.
No entanto, atacantes exploraram vulnerabilidades semelhantes de elevação de privilégio no Linux no passado para ganhar root, incluindo as vulnerabilidades Loony Tunables e uma que explora um bug no nf_tables, portanto, essa nova falha não deve ser ignorada apenas porque requer acesso local.
Dado o uso generalizado do needrestart e o longo período em que esteve vulnerável, as falhas acima poderiam criar oportunidades para elevação de privilégios em sistemas críticos.
Além de atualizar para a versão 3.8 ou posterior, que inclui correções para todas as vulnerabilidades identificadas, é recomendado modificar o arquivo needrestart.conf para desativar a funcionalidade de varredura de interpretadores, o que impede a exploração das vulnerabilidades.
# Desativar scanners de interpretadores.
$nrconf{interpscan} = 0;
Isso deve impedir o needrestart de executar interpretadores com variáveis de ambiente potencialmente controladas por atacantes.
Via - BC
Comments