CVE-2020-4038 json
Reflected XSS in GraphQL Playground
published 2020-06-08 6 y ago modified 2026-07-08 4 mo ago also GHSA-4852-vrh7-28rf , EUVD-2020-0456
- cvss
- 7.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 7.2%
- EPSS 7.2% chance of exploitation in 30 days, percentile 94%
- public exploits
- 0
- none known
Summary
GraphQL Playground (graphql-playground-html NPM package) before version 1.6.22 have a severe XSS Reflection attack vulnerability. All unsanitized user input passed into renderPlaygroundPage() method could trigger this vulnerability. This has been patched in graphql-playground-html version 1.6.22. Note that some of the associated dependent middleware packages are also affected including but not limited to graphql-playground-middleware-express before version 1.7.16, graphql-playground-middleware-koa before version 1.6.15, graphql-playground-middleware-lambda before version 1.7.17, and graphql-playground-middleware-hapi before 1.6.13.
Patch / fix
- npm graphql-playground-html 1.6.22
- prisma graphql-playground-html 1.6.22
- prisma graphql-playground-middleware-express 1.7.16
- prisma graphql-playground-middleware-hapi 1.6.13
- prisma graphql-playground-middleware-koa 1.6.15
- prisma graphql-playground-middleware-lambda 1.7.17
Exploit prediction
7.24% chance of exploitation in the next 30 days, higher than 94% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N |
| NVD | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:N/I:P/A:N |
| GitHub | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | graphql-playground-html | <1.6.22 |
1.6.22 |
Affected products
- prisma-labs graphql-playground
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/prisma-labs/graphql-playground/commit/bf1883db538c97b076801a60677733816cb3cfb7
web, patch, third-party-advisory
-
github.com
/prisma-labs/graphql-playground/security/advisories/GHSA-4852-vrh7-28rf
web, mitigation, third-party-advisory
-
github.com
/prisma-labs/graphql-playground#security-details
web, third-party-advisory
-
github.com
/graphql/graphql-playground/security/advisories/GHSA-4852-vrh7-28rf
web
-
nvd.nist.gov
/vuln/detail/CVE-2020-4038
advisory
Sources
- CVE List CVE-2020-4038
- GitHub Advisory GHSA-4852-vrh7-28rf
- NVD CVE-2020-4038
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.