©2022 - Todos os Direitos Reservados

Falha Crítica no Jenkins deixa Servidores expostos a ataques RCE

Falha Crítica no Jenkins deixa Servidores expostos a ataques RCE

Os mantenedores do software de automação de integração contínua/entrega contínua e implantação (CI/CD) de código aberto Jenkins resolveram nove falhas de segurança, incluindo um bug crítico que, se explorado com sucesso, poderia resultar em execução remota de código (RCE).

CVE-2024-23897: Leitura Arbitrária de Arquivos Através da CLI

O problema, identificado como CVE-2024-23897, foi descrito como uma vulnerabilidade de leitura arbitrária de arquivos através da interface de linha de comando (CLI) incorporada.

"O Jenkins usa a biblioteca args4j para analisar argumentos e opções de comando no controlador Jenkins ao processar comandos CLI", explicaram os mantenedores em um aviso emitido.

"Este analisador de comandos possui um recurso que substitui um caractere "@" seguido por um caminho de arquivo em um argumento pelo conteúdo do arquivo (expandAtFiles). Esse recurso está habilitado por padrão e o Jenkins 2.441 e anteriores, LTS 2.426.2 e anteriores não o desabilita."

Exploração 

Um invasor mal-intencionado poderia explorar essa falha para ler arquivos arbitrários no sistema de arquivos do controlador Jenkins usando a codificação de caracteres padrão do processo do controlador Jenkins.

  • Ataques com permissão "Geral/Leitura" podem ler arquivos inteiros.
  • Ataques sem essa permissão podem ler as primeiras três linhas dos arquivos, dependendo dos comandos CLI usados.

A falha também pode ser usada para ler arquivos binários contendo chaves criptográficas, com certas restrições. Se os segredos binários puderem ser extraídos, o Jenkins afirma que isso pode abrir portas para vários ataques, como:

  • Execução remota de código via URLs de Root de Recursos
  • Execução remota de código via cookie 
  • Execução remota de código via ataques armazenados de cross-site scripting (XSS) através de logs de build
  • Execução remota de código via bypass de proteção CSRF
  • Descriptografar segredos armazenados no Jenkins
  • Excluir qualquer item no Jenkins
  • Baixar um dump do heap Java

Correção

Uma atualização recente no Jenkins (versão 2.442, LTS 2.426.3) desabilitou uma função que costumava substituir um caractere seguido por um caminho de arquivo por um argumento contendo o conteúdo desse arquivo nos comandos da linha de comando.

Solução alternativa

Para evitar possíveis explorações, é aconselhável desativar o acesso à interface de linha de comando (CLI). Isso é especialmente útil para administradores que não podem realizar uma atualização imediata para as versões mais recentes do Jenkins (2.442, LTS 2.426.3). A aplicação dessa solução alternativa não exige reiniciar o Jenkins. 

Quer amadurecer seu programa de segurança cibernética através do gerenciamento de vulnerabilidades? Conheça a EcoTrust, a #1 plataforma SaaS de Inteligência em Riscos Cibernéticos, que através da identificação e priorização de riscos cibernéticos críticos para o negócio, ajuda empresas a serem mais resilientes a ataques cibernéticos. Agende uma demo aqui

Este artigo foi criado com uso de inteligência artificial generativa e teve a curadoria da Equipe EcoTrust.