CVE-2021-41249 json
XSS vulnerability in GraphQL Playground
published 2021-11-04 5 y ago modified 2026-06-17 4 mo ago also GHSA-59r9-6jp6-jcm7 , EUVD-2021-2300
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.2%
- EPSS 1.2% chance of exploitation in 30 days, percentile 68%
- public exploits
- 0
- none known
Summary
GraphQL Playground is a GraphQL IDE for development of graphQL focused applications. All versions of graphql-playground-react older than graphql-playground-react@1.7.28 are vulnerable to compromised HTTP schema introspection responses or schema prop values with malicious GraphQL type names, exposing a dynamic XSS attack surface that can allow code injection on operation autocomplete. In order for the attack to take place, the user must load a malicious schema in graphql-playground. There are several ways this can occur, including by specifying the URL to a malicious schema in the endpoint query parameter. If a user clicks on a link to a GraphQL Playground installation that specifies a malicious server, arbitrary JavaScript can run in the user's browser, which can be used to exfiltrate user credentials or other harmful goals. If you are using graphql-playground-react directly in your client app, upgrade to version 1.7.28 or later.
Patch / fix
- npm graphql-playground-react 1.7.28
- graphql playground 1.7.28
Exploit prediction
1.22% chance of exploitation in the next 30 days, higher than 68% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:L |
| NVD | 3.1 | 4.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N |
| NVD | 2.0 | 2.6 | AV:N/AC:H/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | graphql-playground-react | <1.7.28 |
1.7.28 |
Affected products
- graphql graphql-playground
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/graphql/graphql-playground/commit/b8a956006835992f12c46b90384a79ab82bcadad
web, patch, third-party-advisory
-
github.com
/graphql/graphql-playground/security/advisories/GHSA-59r9-6jp6-jcm7
web, third-party-advisory
-
github.com
/graphql/graphiql/security/advisories/GHSA-x4r7-m2q9-69c8
web, not-applicable, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-41249
advisory
-
github.com
/graphql/graphiql/blob/main/docs/security/2021-introspection-schema-xss.md#2-more-details-on-the-vulnerability
web
-
github.com
/graphql/graphql-playground
package
Sources
- CVE List CVE-2021-41249
- GitHub Advisory GHSA-59r9-6jp6-jcm7
- NVD CVE-2021-41249
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.