ghsa-r344-xw3p-2frj
Vulnerability from github
Impact
The Apollo Router is a configurable, high-performance graph router written in Rust to run a federated supergraph that uses Apollo Federation. Affected versions are subject to a Denial-of-Service (DoS) type vulnerability which causes the Router to panic and terminate when a multi-part response is sent. When users send queries to the router that uses the @defer
or Subscriptions, the Router will panic.
To be vulnerable, users of Router must have a coprocessor with coprocessor.supergraph.response
configured in their router.yaml
and also to support either @defer
or Subscriptions.
Patches
Router version 1.33.0 has a fix for this vulnerability. https://github.com/apollographql/router/pull/4014 fixes the issue.
Workarounds
For affected versions, avoid using the coprocessor supergraph response: ```yml
do not use this stage in your coprocessor configuration
coprocessor: supergraph: response: ```
Or you can disable defer and subscriptions support: ```yml
disable defer and subscriptions:
supergraph: defer_support: false # enabled by default subscription: enabled: false # disabled by default ``` and continue to use the coprocessor supergraph response.
References
https://github.com/apollographql/router/issues/4013
{ "affected": [ { "package": { "ecosystem": "crates.io", "name": "apollo-router" }, "ranges": [ { "events": [ { "introduced": "1.31.0" }, { "fixed": "1.33.0" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2023-45812" ], "database_specific": { "cwe_ids": [ "CWE-703", "CWE-754" ], "github_reviewed": true, "github_reviewed_at": "2023-10-19T16:08:10Z", "nvd_published_at": "2023-10-18T22:15:09Z", "severity": "HIGH" }, "details": "### Impact\nThe Apollo Router is a configurable, high-performance graph router written in Rust to run a federated supergraph that uses Apollo Federation. Affected versions are subject to a Denial-of-Service (DoS) type vulnerability which causes the Router to panic and terminate when a multi-part response is sent. When users send queries to the router that uses the `@defer` or Subscriptions, the Router will panic.\n \nTo be vulnerable, users of Router must have a coprocessor with `coprocessor.supergraph.response` configured in their `router.yaml` and also to support either `@defer` or Subscriptions. \n\n### Patches\nRouter version 1.33.0 has a fix for this vulnerability. https://github.com/apollographql/router/pull/4014 fixes the issue. \n\n### Workarounds\nFor affected versions, avoid using the coprocessor supergraph response:\n```yml\n# do not use this stage in your coprocessor configuration\ncoprocessor:\n supergraph:\n response:\n``` \n\nOr you can disable defer and subscriptions support:\n```yml\n# disable defer and subscriptions:\nsupergraph:\n defer_support: false # enabled by default\nsubscription:\n enabled: false # disabled by default\n```\nand continue to use the coprocessor supergraph response.\n### References\nhttps://github.com/apollographql/router/issues/4013\n", "id": "GHSA-r344-xw3p-2frj", "modified": "2023-10-19T16:08:10Z", "published": "2023-10-19T16:08:10Z", "references": [ { "type": "WEB", "url": "https://github.com/apollographql/router/security/advisories/GHSA-r344-xw3p-2frj" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2023-45812" }, { "type": "WEB", "url": "https://github.com/apollographql/router/issues/4013" }, { "type": "WEB", "url": "https://github.com/apollographql/router/pull/4014" }, { "type": "WEB", "url": "https://github.com/apollographql/router/commit/b917b8c117b46a2d508428c0856f4927dfcfc341" }, { "type": "PACKAGE", "url": "https://github.com/apollographql/router" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "type": "CVSS_V3" } ], "summary": "Apollo Router vulnerable to Improper Check or Handling of Exceptional Conditions" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.