PT-2024-30572 · Apollo · Apollo Router+2

Highpeakematt

·

Publicado

2024-08-27

·

Atualizado

2024-09-12

·

CVE-2024-43414

CVSS v4.0

8.7

Alta

VetorAV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Nome do software vulnerável e versões afetadas
@apollo/query-planner versões 2.0.0 a 2.8.4
@apollo/gateway versões 2.0.0 a 2.8.4
Apollo Router versões anteriores à 1.52.1
Descrição
O problema é uma vulnerabilidade de negação de serviço que pode fazer com que o planejador de consultas do Apollo entre em um loop infinito e nunca seja concluído, resultando em consumo ilimitado de memória e, consequentemente, em uma falha ou encerramento por falta de memória. Isso pode ser acionado se houver pelo menos um campo que não seja @key que possa ser resolvido por múltiplos subgrafos. O mecanismo para identificar campos compartilhados varia de acordo com a versão do Federation em uso. Em JavaScript, se o número de permutações do plano de consulta exceder Number.MAX VALUE, ele é representado como “infinito”, fazendo com que o planejador de consultas avalie muitos ordens de magnitude a mais de candidatos a planos de consulta do que o necessário.
Recomendações
Para as versões 2.0.0 a 2.8.4 do @apollo/query-planner, atualize para a versão 2.8.5.
Para as versões 2.0.0 a 2.8.4 do @apollo/gateway, atualize para a versão 2.8.5.
Para versões do Apollo Router anteriores à 1.52.1, atualize para a versão 1.52.1.
Como solução alternativa temporária, certifique-se de que não haja campos resolvíveis a partir de múltiplos subgrafos. Se todos os subgrafos estiverem usando a Federação 2, confirme que nenhum dos esquemas de subgrafo utilize a diretiva @shareable. Se estiver usando subgrafos da Federação 1, verifique se não há campos resolvíveis por múltiplos subgrafos. Clientes do Apollo com uma licença empresarial que utilizam o Apollo Router também podem mitigar significativamente

Exploit

Correção

Uncontrolled Recursion

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2024-43414
GHSA-FMJ9-77Q8-G6C4

Produtos afetados

Apollo Gateway
@Apollo/Query-Planner
Apollo Router