{
  "schema_version": "1.4.0",
  "id": "GHSA-74cr-77xc-8g6r",
  "modified": "2021-08-16T15:28:22Z",
  "published": "2019-06-13T20:37:39Z",
  "aliases": [],
  "summary": "Prototype Pollution in @apollo/gateway",
  "details": "Versions of `@apollo/gateway` prior to 0.6.2 are vulnerable to Prototype Pollution. The package uses deepMerge() to merge objects, which may allow attackers to alter the Object prototype through queries with GraphQL aliases. Carefully constructed payloads can override properties of all objects in the application. This may lead to Denial of Service or may be chained with other vulnerabilities leading to Remote Code Execution.\n\n\n## Recommendation\n\nUpgrade to version 0.6.2 or later.\n",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "@apollo/gateway"
      },
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.6.2"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/apollographql/apollo-server/pull/2779"
    },
    {
      "type": "WEB",
      "url": "https://github.com/apollographql/apollo-server/commit/cea7397582a293af6a5f60947da34b95e669c6c1"
    },
    {
      "type": "WEB",
      "url": "https://snyk.io/vuln/SNYK-JS-APOLLOGATEWAY-174915"
    },
    {
      "type": "WEB",
      "url": "https://www.npmjs.com/advisories/917"
    }
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-1321",
      "CWE-400"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2019-06-13T20:37:08Z",
    "nvd_published_at": null
  }
}