🚀 A CloudSEK se torna a primeira empresa de segurança cibernética de origem indiana a receber investimentos da Estado dos EUA fundo
Leia mais

Autores: Sparsh Kulshrestha e Shashank Bharthwal
Editora: Deepanjli Paulraj
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.
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.
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.
Os painéis e painéis do Appsmith podem ser configurados em 4 etapas:
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.

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”.

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.


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.

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.


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

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:

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.
O cronograma desse processo de divulgação pode ser encontrado abaixo: