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
| Vetor | AV: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 significativamenteExploit
Correção
Uncontrolled Recursion
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Apollo Gateway
@Apollo/Query-Planner
Apollo Router