A vulnerabilidade “ParseThru” permite acesso não autorizado a aplicativos nativos da nuvem

Views: 271
0 0
Read Time:2 Minute, 50 Second

Uma nova vulnerabilidade encontrada em aplicativos baseados em GoLang permite que um agente de ameaças ignore validações sob certas condições e obtenha acesso não autorizado a aplicativos nativos da nuvem, descobriram pesquisadores da Oxeye .

A fonte de “ParseThru” – como a vulnerabilidade recém-descoberta foi apelidada – é o uso de métodos de análise de URL inseguros construídos na linguagem.

Sobre a vulnerabilidade “ParseThru”

GoLang é uma linguagem de programação nativa da nuvem popular. Reduz o número de dependências de desenvolvimento de software e tem uma curva de aprendizado curta. Usado para desenvolver muitos aplicativos nativos da nuvem, o GoLang está por trás de um grande número de aplicativos escritos para a nuvem, incluindo ambientes Kubernetes .

Cada linguagem de programação tem sua própria implementação de lógica de análise de URL. GoLang usa a biblioteca ‘net/url’ para analisar URLs. Antes da versão 1.17 da linguagem de programação, o GoLang considerava o ponto e vírgula na parte de consulta da URL como um delimitador válido. No entanto, após a versão 1.17, o GoLang alterou esse comportamento e agora o método “parseQuery” retornará um erro se a parte da consulta da URL contiver um ponto e vírgula. Embora esse método tenha sido corrigido para retornar corretamente um erro quando a entrada contém um ponto e vírgula, um dos métodos responsáveis ​​por obter a string de consulta analisada ignora o erro retornado.

Como resultado, quando uma API pública baseada em GoLang baseada em GoLang versão superior a 1.17 se comunica com um serviço interno executando GoLang anterior à v1.17. Quando um usuário faz uma solicitação http ao primeiro serviço, fornecendo um parâmetro de consulta, o serviço determinará se deve passar a solicitação com base no parâmetro fornecido. Se um ponto e vírgula for adicionado ao parâmetro nomeado, o primeiro serviço ignorará sua existência. Nenhuma lógica será feita com base no valor real do parâmetro. Neste ponto, a requisição é encaminhada ao serviço interno, recebendo e tratando a requisição este último recebe a transação e trata o parâmetro sem o ponto e vírgula. Isso significa que os criminosos podem contrabandear solicitações contendo parâmetros de consulta que normalmente seriam rejeitados.

Projetos de código aberto vulneráveis

Ao realizar esta pesquisa, a Oxeye descobriu várias instâncias desse comportamento em vários projetos de código aberto que resultaram em várias vulnerabilidades.

Três projetos vulneráveis ​​identificados incluem:

  • Projeto graduado pela CNCF Harbor, um registro de código aberto que protege artefatos com políticas e controle de acesso baseado em função
  • Traefik, um proxy reverso http moderno e balanceador de carga que facilita a implantação de microsserviços
  • Skipper, roteador http e proxy reverso para composição de serviços.

Para esses e outros projetos de código aberto, a equipe de pesquisa da Oxeye conseguiu contornar a lógica crítica do aplicativo usando essa vulnerabilidade para explorar o aplicativo para executar várias ações não autorizadas.

“Com nossos especialistas descobrindo esse problema de segurança, agora recomendamos que os aplicativos baseados em GoLang em uso sejam revisados ​​para garantir que a correção e/ou correção adequada seja aplicada”, disse Ron Vider, CTO e cofundador da Oxeye.

“Como observado acima, a revisão inicial de Gal Goldshtein e Daniel Abeles revelou que vários projetos significativos de código aberto foram impactados por esse caso extremo. Para ajudar na correção, estamos fornecendo um mergulho técnico mais profundo nessas vulnerabilidades.”

FONTE: HELPNET SECURITY

POSTS RELACIONADOS