PT-2022-28174 · Apollo · Apollo Server 2+1

Publicado

2022-10-12

·

Atualizado

2022-10-12

Nenhuma

Não há classificações de severidade ou métricas disponíveis. Quando houver, atualizaremos as informações correspondentes na página.
Nome do software vulnerável e versões afetadas
Versões do Apollo Server anteriores à 2.25.4
Versões do Apollo Server que se integram manualmente com o graphql-upload e não têm a prevenção contra CSRF ativada
Descrição
O pacote npm graphql-upload pode executar operações GraphQL contidas em solicitações POST com content-type: multipart/form-data, permitindo que o JS em qualquer origem faça com que os navegadores enviem mutações autenticadas por cookie para o servidor GraphQL sem verificar primeiro a política CORS. Isso pode levar a efeitos colaterais, como a mutação ocorrer mesmo que a política CORS esteja configurada corretamente. Além disso, se o servidor GraphQL depender de propriedades de rede para segurança, o JS em qualquer origem pode fazer com que os navegadores enviem mutações ao servidor, que serão executadas sem verificar primeiro a política CORS.
Recomendações
Para versões do Apollo Server 2 anteriores à 2.25.4 que não utilizam uploads, atualize para o Apollo Server 2.25.4 para desativar automaticamente o graphql-upload.
Para versões do Apollo Server 2 que utilizam uploads, atualize para o Apollo Server 3.7 e habilite o recurso de prevenção de CSRF.
Para versões do Apollo Server que se integram manualmente com o graphql-upload, habilite algum tipo de recurso de prevenção de CSRF, como o recurso de prevenção de CSRF no Apollo Server 3.7.
Como solução alternativa temporária, especifique uploads: false para new ApolloServer para desativar a integração do graphql-upload e proteger contra mutações CSRF, mas observe que isso ainda deixará o servidor vulnerável a ataques CSRF que não envolvam mutações.

CSRF

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

Enumeração de Fraquezas

Identificadores relacionados

GHSA-2P3C-P3QW-69R4

Produtos afetados

Apollo Server 2
Apollo Server 3