Milhares de aplicativos vulneráveis ao RCE por meio do upload de arquivo jQuery

Milhares de aplicativos vulneráveis ao RCE por meio do upload de arquivo jQuery. A falha existe há oito anos graças a uma mudança de segurança no Apache.

Um plugin amplamente utilizado pela Blueimp chamado jQuery File Upload contém uma vulnerabilidade antiga que potencialmente coloca 7.800 aplicações de software diferentes sob risco de comprometimento e execução remota de código (RCE).

jQuery File Upload é um pacote de código aberto com contribuição do usuário para desenvolvedores de software que se descreve como um “widget de upload de arquivo com seleção de vários arquivos, suporte a arrastar e soltar, barras de progresso, validação e visualização de imagens e áudio e vídeo for jQuery.” Ele funciona com qualquer plataforma do lado do servidor que suporte uploads de arquivos em formato HTML padrão, como PHP, Python, Ruby on Rails, Java e Node.js.

O pesquisador Larry Cashdollar da Equipe de Resposta de Inteligência de Segurança (Security Intelligence Response Team – SIRT) da Akamai analisou mais de perto dois arquivos PHP no pacote – Upload.php e UploadHandler.php – sob o caminho do servidor de diretório /php dentro do código e encontrou uma vulnerabilidade gritante.

“O arquivo Upload.php chama o arquivo principal UploadHandler.php onde todo o código de upload do arquivo reside“, explicou ele em uma postagem na semana passada. “Também vi que todos os arquivos foram enviados para os arquivos/diretório no caminho raiz do servidor da web. Eu escrevi um teste de linha de comando rápido com o curl, e um arquivo shell simples do PHP confirmou que eu poderia fazer o upload de um shell da web e executar comandos no servidor.

Veja também: CrowdStrike aterriza no Brasil com o melhor Next Generation AV do mercado!

Cashdollar disse ao Threatpost que a questão não é apenas que os arquivos são enviados para o caminho do servidor da Web, mas também que o invasor não precisa de nenhuma forma de autenticação para fazer upload de arquivos.

Esses arquivos não são verificados para ver se eles podem ser executados no servidor“, ele nos disse. “Quando o invasor carrega um arquivo PHP ou outro que pode ser executado pelo servidor, eles podem executar comandos nesse servidor com os privilégios do servidor da Web – geralmente ‘www-data’. Isso abre toda uma série de ataques ”.

Por exemplo, um atacante pode fazer upload de um shell PHP, dando a ele acesso ao sistema, para instalar malware, filtrar dados do site, usar o shell para explorar outras partes da rede (dependendo de onde o servidor está hospedado), desfigurar o site, usar o site como um servidor de comando e controle (C2) para uma botnet e assim por diante.

Depois que ele notificou o autor do jQuery File Upload, Sebastian Tschan, descobriu-se que a falha (CVE-2018-9206) foi introduzida quando o Apache, servidor da Blueimp, desativou um controle de segurança que o widget usava para controle de acesso a arquivos . O suporte padrão para arquivos .htaccess foi eliminado a partir do Apache 2.3.9, deixando desprotegido qualquer código que usasse o recurso para impor restrições ao acesso à pasta – incluindo o jQuery File Upload.

O código da Blueimp dependia do controle .htaccess para impedir que arquivos maliciosos fossem enviados e executados no servidor“, nos disse Cashdollar. “Esse controle foi removido por padrão nas versões do Apache 2.3.9. Assim, os arquivos .htaccess foram ignorados, deixando o software aberto à exploração sem o controle de segurança em vigor. O autor (Blueimp) não estava ciente dessa alteração na configuração padrão do Apache (eu também).

O Apache 2.3.9 foi introduzido pela primeira vez em 2010 – o que significa que a falha existe há quase uma década. Os adversários também se depararam com vários vídeos no YouTube mostrando como explorar o problema. De alguma forma, no entanto, a falha ficou fora do radar dos pesquisadores.

A questão mais importante é que as variações de código do jQuery File Upload usados ​​em pacotes de produção – cerca de 7.800 deles, de acordo com Cashdollar – também são vulneráveis ​​ao upload de arquivos e à execução de códigos. Isso, por sua vez, abre os aplicativos até a exfiltração de dados ou malware.

A maioria desses forks codificados carregam a vulnerabilidade original em seu código“, disse Cashdollar. “Em alguns casos, a vulnerabilidade persiste mesmo depois que o autor do projeto mudou o código original do Blueimp para se adequar ao seu próprio projeto, com cada projeto explorável por uma pequena variação do meu exemplo de prova de conceito.

A Blueimp corrigiu o problema na versão mais recente de seu software, permitindo apenas o upload de arquivos de imagem por padrão, como os tipos de arquivo GIF, JPG, JPEG e PNG. Os projetos que usam a base de código da Blueimp terão, no entanto, que emitir sua própria correção.

Eles também são vulneráveis, a menos que os autores desses projetos tenham feito alterações para corrigir o código ou não confiar no .htaccess para segurança“, disse Cashdollar.

 

Fonte: ThreatPost  &  Akamai

 

Veja também:

 

Sobre mindsecblog 2401 Artigos
Blog patrocinado por MindSec Segurança e Tecnologia da Informação Ltda.

Seja o primeiro a comentar

Deixe sua opinião!