Os mantenedores do software de automação de integração/distribuição contínua 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).
O problema, a que foi atribuído o identificador CVE
CVE-2024-23897
, foi descrito como uma vulnerabilidade de leitura arbitrária de arquivo por meio da interface de linha de comando (CLI)
"Jenkins usa a biblioteca args4j para analisar argumentos e opções de comandos no controlador Jenkins ao processar comandos CLI", disseram os mantenedores em um aviso na quarta-feira.
"Este analisador de comandos possui um recurso que substitui um caractere @ seguido por um caminho de arquivo em um argumento com o conteúdo do arquivo (expandAtFiles).
Este recurso é habilitado por padrão e Jenkins 2.441 e anterior, LTS 2.426.2 e anterior não o desativam."
Um ator de ameaça poderia explorar essa peculiaridade 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.
Embora os invasores com permissão "Overall/Read" possam ler arquivos inteiros, aqueles sem ela podem ler as três primeiras linhas dos arquivos, dependendo dos comandos CLI.
Além disso, a deficiência poderia ser usada para ler arquivos binários contendo chaves criptográficas, embora com certas restrições.
Desde que os segredos binários possam ser extraídos, Jenkins diz que isso poderia abrir a porta para vários ataques -
Execução de código remoto via URLs de recursos raiz
Execução de código remoto via cookie "Lembre de mim"
Execução de código remoto via ataques XSS armazenados por meio de logs de construção
Execução de código remoto via desvio de proteção CSRF
Descriptografar segredos armazenados em Jenkins
Excluir qualquer item em Jenkins
Fazer o download de um despejo de heap Java
"Embora os arquivos contendo dados binários possam ser lidos, o recurso afetado tenta lê-los como strings usando a codificação de caracteres padrão do processo do controlador", disse Jenkins.
"Isso provavelmente resultará em alguns bytes não sendo lidos com sucesso e sendo substituídos por um valor reservado.
Quais bytes podem ou não ser lidos depende dessa codificação de caracteres."
O pesquisador de segurança Yaniv Nizry recebeu crédito por descobrir e reportar a falha, que foi corrigida no Jenkins 2.442, LTS 2.426.3 ao desabilitar o recurso de análise de comando.
Como solução imediata até que o patch possa ser aplicado, é recomendável desativar o acesso ao CLI.
O desenvolvimento ocorre quase um ano após o Jenkins ter resolvido um par de graves vulnerabilidades de segurança chamadas CorePlague (
CVE-2023-27898
e
CVE-2023-27905
) que poderiam levar à execução de código em sistemas direcionados.
Publicidade
O curso Python Básico da Solyd oferece uma rápida aproximação à linguagem Python com diversos projetos práticos. Indo do zero absoluto até a construção de suas primeiras ferramentas. Tenha também suporte e certificado gratuitos. Saiba mais...