Vulnerabilidade crítica do servidor Jenkins pode vazar informações confidenciais

Jenkins – um popular software de servidor de automação de código aberto – publicou um comunicado na segunda-feira sobre uma vulnerabilidade crítica no servidor web Jetty que pode resultar em corrupção de memória e fazer com que informações confidenciais sejam divulgadas.

Jenkins – um popular software de servidor de automação de código aberto – publicou um comunicado na segunda-feira sobre uma vulnerabilidade crítica no servidor web Jetty que pode resultar em corrupção de memória e fazer com que informações confidenciais sejam divulgadas. 

Rastreada como CVE-2019-17638, a falha tem uma classificação CVSS de 9,4 e afeta as versões 9.4.27.v20200227 a 9.4.29.v20200521 do Eclipse Jetty – uma ferramenta completa que fornece um servidor Java HTTP e um contêiner da web para uso em frameworks de software.

“O Jenkins empacota o Winstone-Jetty, um wrapper em torno do Jetty, para atuar como servidor HTTP e servlet ao começar a usar java -jar jenkins.war. É assim que o Jenkins é executado ao usar qualquer um dos instaladores ou pacotes, mas não quando executado usando servlet contêineres como o Tomcat “, leia o comunicado.

“A vulnerabilidade pode permitir que invasores não autenticados obtenham cabeçalhos de resposta HTTP que podem incluir dados confidenciais destinados a outro usuário.”

falha , que afeta o Jetty e o Jenkins Core, parece ter sido introduzida no Jetty versão 9.4.27, que adicionou um mecanismo para lidar com grandes cabeçalhos de resposta HTTP e evitar estouros de buffer.

“O problema era no caso de um estouro de buffer, liberamos o buffer de cabeçalho, mas não anulamos o campo”, disse Greg Wilkins, chefe do projeto do Jetty .

Para lidar com isso, o Jetty lança uma exceção para produzir um erro HTTP 431, que faz com que os cabeçalhos de resposta HTTP sejam liberados para o pool de buffer duas vezes, causando corrupção de memória e divulgação de informações.

Assim, devido à liberação dupla, duas threads podem adquirir o mesmo buffer do pool ao mesmo tempo e, potencialmente, permitir que uma solicitação acesse uma resposta escrita pela outra thread, que pode incluir identificadores de sessão, credenciais de autenticação e outras informações confidenciais.

Em outras palavras, “enquanto thread1 está prestes a usar o ByteBuffer para gravar dados response1, thread2 preenche ByteBuffer com dados response2. Thread1 então prossegue para gravar o buffer que agora contém dados response2. Isso resulta em client1, que emitiu request1 e espera respostas, para ver a resposta2, que pode conter dados confidenciais pertencentes ao cliente2. “

Em um caso, a corrupção de memória possibilitou que os clientes se movessem entre as sessões, tendo assim acesso entre contas, já que os cookies de autenticação da resposta de um usuário eram enviados para outro usuário, permitindo assim que o usuário A saltasse na sessão do usuário B.

Depois que as implicações de segurança foram divulgadas, a vulnerabilidade foi corrigida no Jetty 9.4.30.v20200611 lançado no mês passado. Foi corrigida a falha em sua utilidade em Jenkins 2.243 e Jenkins LTS 2.235.5 divulgado ontem.

É recomendado que os usuários do Jenkins atualizem seu software para a versão mais recente para mitigar a falha de corrupção do buffer.

Fonte: https://thehackernews.com/2020/08/jenkins-server-vulnerability.html