CVE-2024-23841: Apollo experimental-nextjs-app-support cross-site scripting in server-side rendering

CVE-2024-23841 · Severity: low · CVSS 3.1 · Published 2024-01-30

The @apollo/experimental-nextjs-app-support library, used to integrate Apollo GraphQL with Next.js applications, contains a cross-site scripting (XSS) vulnerability in its server-side rendering functionality. An attacker can inject malicious JavaScript code into rendered HTML pages by exploiting improper input handling, potentially allowing them to steal session data, perform actions on behalf of users, or redirect users to malicious sites. This vulnerability affects all versions up to 0.6.0 and is fixed in version 0.7.0.

Vendors: Apollo, npm.

Quick answers

Is CVE-2024-23841 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2024-23841 being exploited in the wild.
How severe is CVE-2024-23841?
Low severity, with a CVSS score of 3.1, published 30 January 2024.
Which products and versions are affected?
Apollo Experimental-Nextjs-App-Support <= 0.6.0; @apollo/experimental-nextjs-app-support (npm) SEMVER:introduced=0,fixed=0.7.0.
Is there a fix for CVE-2024-23841?
Yes. @apollo/experimental-nextjs-app-support (npm): upgrade to 0.7.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2024-23841 attacked?
It is attacked over the network.
Am I affected by CVE-2024-23841?
Check whether you run Apollo Experimental-Nextjs-App-Support or @apollo/experimental-nextjs-app-support (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @apollo/experimental-nextjs-app-support (npm): upgrade to 0.7.0 or later
    npm install @apollo/experimental-nextjs-app-support@0.7.0

Technical details

The vulnerability is a reflected/stored cross-site scripting (CWE-79) flaw in @apollo/experimental-nextjs-app-support's server-side rendering implementation. The library fails to properly escape or sanitize untrusted input before inserting it into HTML output sent to browsers. An attacker can craft malicious input (e.g., via GraphQL queries or URL parameters) that contains JavaScript code, which will be executed in the victim's browser when the server-rendered page is loaded. No privileges or user interaction are required; the vulnerability is network-reachable and affects confidentiality (session hijacking, credential theft) and integrity (DOM manipulation, form tampering). The fix, released in version 0.7.0, implements proper HTML escaping to neutralize JavaScript injection attempts.

Affected products

  • Apollo experimental-nextjs-app-support <= 0.6.0

Identifiers

  • CVE-2024-23841
  • GHSA-rv8p-rr2h-fgpg

Timeline

  • 2024-01-30: disclosed
  • 2024-01-30: patched: Version 0.7.0 released

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.