Voltar
Vulnerability Intelligence
Tabela de conteúdo

Autores: Sparsh Kulshrestha e Shashank Bharthwal
Editora: Deepanjli Paulraj

Sumário executivo

AMEAÇAIMPACTOMITIGAÇÃO

O CloudSEK ASM descobriu vulnerabilidades de SSRF (falsificação de solicitação do lado do servidor) de leitura completa após a autenticação em Appsmith Cliente REST (CVE-2022-38298) e Elasticsearch (CVE-2022-38299).

A vulnerabilidade do SSRF pode ser explorada para acessar os serviços de metadados do AWS/GCP e obter credenciais de segurança temporárias do ambiente de nuvem do Appsmith.

Introdução

Em agosto de 2022 CloudSEK ASM, que monitora as superfícies de ataque de nossos clientes, descobriu várias instâncias do Appsmith expostas na Internet. Como as instâncias foram expostas externamente, os pesquisadores de segurança do CloudSEK as exploraram em busca de possíveis vulnerabilidades antes e depois da autenticação.

Como o Appsmith não tem restrições de inscrição na instalação padrão, nos concentramos em suas funcionalidades pós-autenticação, onde descobrimos vulnerabilidades de falsificação de solicitações do lado do servidor (SSRF) em seu plug-in da API REST (CVE-2022-38298) e Elasticsearch (CVE-2022-38299), respectivamente.

As vulnerabilidades do SSRF podem ser exploradas para acessar os metadados internos do AWS/GCP. Como a Appsmith oferece uma versão em nuvem de seu software hospedado na AWS, as vulnerabilidades do SSRF podem ter um alto impacto.

O que é Appsmith

Appsmith é uma ferramenta de código aberto e de baixo código que ajuda os desenvolvedores a criar painéis e painéis de administração muito rapidamente. É uma plataforma que ajuda as empresas a criar qualquer aplicativo interno personalizado em poucas horas.

Como funciona o Appsmith?

Os painéis e painéis do Appsmith podem ser configurados em 4 etapas:

  • Conectar fonte de dados: integre com uma fonte de dados, como um banco de dados ou uma API. O Appsmith tem suporte plug-and-play para muitos bancos de dados e interface de API RESTful para se conectar com a maioria das ferramentas.
  • Crie uma interface de usuário: use widgets integrados personalizáveis para criar um layout de aplicativo.
  • Dados de acesso: conecte a interface do usuário à fonte de dados escrevendo consultas e vinculando os dados aos widgets.
  • Colabore, implante e compartilhe: Ele suporta o controle de versão com o Git, para rastrear alterações, criar reversões e colaborar usando ramificações do git. Implante o aplicativo e compartilhe-o com outros usuários.

Vulnerabilidade SSRF no cliente REST do Appsmith (CVSS: 3.0 Pontuação: 8,8)

Uma das funcionalidades de pós-autenticação do Appsmith permite que os usuários se conectem às fontes de dados usando APIs REST. O cliente REST do Appsmith pode ser usado para invocar uma API de serviço REST para criar e executar consultas. Ele pode lidar com solicitações HTTP que variam de GET, POST, PUT e PATCH, e os usuários também podem especificar cabeçalhos, se necessário, para autenticação.

Appsmith REST API
API REST do Appsmith

 

Ao substituir o URL da API pela carga útil de um colaborador do Burp, recebemos um pingback HTTP imediatamente. No entanto, quando tentamos acessar os metadados internos da AWS, recebemos um erro “Host not allowed”.

Error while accessing AWS metadata
Erro ao acessar os metadados da AWS

 

Como o Appsmith é uma ferramenta de código aberto, analisamos o código dessa funcionalidade e descobrimos que há uma prevenção baseada em listas negras que restringe o acesso dos usuários aos metadados da AWS.

conjunto final estático privado <String>DISALLOWED_HOSTS = Set.of (
“169,254,169,254",
“metadata.google.internal”
);

Lista de domínios não permitidos

host final da string = URI.getHost ();
if (stringUtils.isEmpty (host)
|| Disallowed_hosts.contains (host)
|| disallowed_hosts.contains (inetAddress.getByName (host) .getHostAddress ())) {
errorResult.setBody (AppSmithPluginError.plugin_execute_argument_error.getMessage (“Host não permitido. “));
errorResult.setRequest (ActionExecutionRequest);
retornar Mono.just (ErrorResult);
}

Condição para validar o nome do host

Na tentativa de contornar a proteção da lista negra do SSRF, implementamos um servidor de redirecionamento que redireciona a solicitação de isca para o servidor na lista negra.

Então, configuramos um servidor de redirecionamento de PHP, em nosso VPS, que redireciona as solicitações recebidas para o endpoint interno de metadados da AWS. Dessa forma, conseguimos explorar essa vulnerabilidade do SSRF. O seguinte arquivo redirect.php foi hospedado em nosso VPS:

<? php
$server = $_GET ["servidor"];
if ($server == “gcp”) {
cabeçalho (“Localização: http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/ “);
}
elseif ($server = “aws”) {
cabeçalho (“Localização: http://169.254.169.254/latest/meta-data/ “);
}
? >

Conteúdo do arquivo Redirect.php

Em seguida, fizemos uma solicitação para o arquivo acima da API REST do Appsmith e, em resposta, recebemos os metadados da nuvem AWS/GCP.

AWS security credentials of self-hosted Appsmith Cloud
Credenciais de segurança da AWS do Appsmith Cloud auto-hospedado

 

GCP metadata were fetched from the GCP compute engine
Os metadados do GCP foram obtidos do mecanismo de computação do GCP

 

Vulnerabilidade SSRF no Elasticsearch do Appsmith (CVSS: 3.0 Pontuação: 8,2)

Uma das funcionalidades de pós-autenticação do Appsmith permite que os usuários se conectem aos bancos de dados do Elasticsearch como fontes de dados.

Adding an Elasticsearch database as a data source
Adicionar um banco de dados Elasticsearch como fonte de dados

 

Depois que o banco de dados do Elasticsearch estiver conectado, selecione o método de consulta e insira o caminho. Adicionamos o seguinte caminho: /mais recentes/meta-dados/iam/credenciais de segurança/. Deixe o corpo em branco.

Adding the path
Adicionando o caminho

 

Quando essa consulta é executada, ela retorna as credenciais de segurança temporárias para sua função na AWS.

AWS security credentials
Credenciais de segurança da AWS

Impacto

Embora um SSRF pós-autenticação não seja novo, ele pode ter um impacto significativo, pois a Appsmith oferece uma versão em nuvem de seu software hospedado na AWS. Além disso, o Appsmith não tem uma restrição de inscrição na instalação padrão. Portanto, se uma instância do Appsmith for exposta à Internet, qualquer pessoa poderá se inscrever e ter acesso à funcionalidade vulnerável que tem essa vulnerabilidade de SSRF.

Nesse caso, as vulnerabilidades do SSRF podem ser exploradas no endereço IP de metadados da AWS e obter credenciais de segurança temporárias para o ambiente de nuvem do Appsmith auto-hospedado.

Isso pode ter um impacto em grande escala, já que mais de 1.000 instâncias do Appsmith estão expostas na Internet:

Mitigação

Divulgação responsável

A CloudSEK enviou essa vulnerabilidade à Appsmith por meio de seu processo bem definido de divulgação de vulnerabilidades. Posteriormente, a equipe do Appsmith corrigiu esse problema em sua próxima versão. As versões 1.7.12 e superiores do Appsmith não têm essa vulnerabilidade.

Cronograma

O cronograma desse processo de divulgação pode ser encontrado abaixo:

  • 05 de agosto de 2022: Divulgação do primeiro SSRF para a Appsmith
  • 05 de agosto de 2022: Resposta inicial do Appsmith com reconhecimento da vulnerabilidade
  • 06 de agosto de 2022: Divulgação do segundo SSRF para a Appsmith
  • 08 de agosto de 2022: Resposta do Appsmith com reconhecimento pela segunda vulnerabilidade
  • 09 de agosto de 2022: O Appsmith lança um patch para ambas as vulnerabilidades.
  • 10 de agosto de 2022: Solicitamos o CVE
  • 13 de setembro de 2022: ID CVE atribuído por cve.org

Referências

Nenhum item encontrado.

Blogs relacionados