CVE-2023-41317 Unnamed "Subscription" operation results in Denial-of-Service in apollographql/router

High 7.5 Published Updated

Attackers can crash the Apollo Router by sending anonymous subscription operations when subscriptions are enabled, requiring an upgrade to fix.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2023-41317?

CVE-2023-41317 is a high-severity denial of service vulnerability in apollographql router, published on 5 Sep 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

The Apollo Router is a configurable, high-performance graph router written in Rust to run a federated supergraph that uses Apollo Federation 2. Affected versions are subject to a Denial-of-Service (DoS) type vulnerability which causes the Router to panic and terminate when GraphQL Subscriptions are enabled. It can be triggered when **all of the following conditions are met**: 1. Running Apollo Router v1.28.0, v1.28.1 or v1.29.0 ("impacted versions"); **and** 2. The Supergraph schema provided to the Router (either via Apollo Uplink or explicitly via other configuration) **has a `subscription` type** with root-fields defined; **and** 3. The YAML configuration provided to the Router **has subscriptions enabled** (they are _disabled_ by default), either by setting `enabled: true` _or_ by setting a valid `mode` within the `subscriptions` object (as seen in [subscriptions' documentation](https://www.apollographql.com/docs/router/executing-operations/subscription-support/#router-setup)); **and** 4. An [anonymous](https://spec.graphql.org/draft/#sec-Anonymous-Operation-Definitions) (i.e., un-named) `subscription` operation (e.g., `subscription { ... }`) is received by the Router If **all four** of these criteria are met, the impacted versions will panic and terminate. There is no data-privacy risk or sensitive-information exposure aspect to this vulnerability. This is fixed in Apollo Router v1.29.1. Users are advised to upgrade. Updating to v1.29.1 should be a clear and simple upgrade path for those running impacted versions. However, if Subscriptions are **not** necessary for your Graph – but are enabled via configuration — then disabling subscriptions is another option to mitigate the risk.

Weakness: CWE-755

Which versions are affected by CVE-2023-41317?

2 open source packages ship an affected version, including apollo-router. It affects 1 product.

PackageAffectedFixed in
apollo-router crates.ioFrom 1.28.01.29.1
apollo-router crates.ioFrom 1.28.01.29.1

Products include Apollographql Apollo Router.

How do I fix CVE-2023-41317?

Upgrade apollo-router to 1.29.1 or later.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2023-41317 being exploited?

There is no known exploitation of CVE-2023-41317 in the wild and no public exploit code.

Sources

Also known as GHSA-w8vq-3hf9-xppx.

Is CVE-2023-41317 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free