CVE-2020-4038 Reflected XSS in GraphQL Playground
Reflected XSS in GraphQL Playground allows attackers to execute arbitrary scripts via unsanitized input in the renderPlaygroundPage method.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2020-4038?
CVE-2020-4038 is a high-severity cross-site scripting vulnerability in prisma-labs graphql-playground, published on 8 Jun 2020. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
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.
Weakness: CWE-79
Which versions are affected by CVE-2020-4038?
2 open source packages ship an affected version, including graphql-playground-html. It affects 5 products.
| Package | Affected | Fixed in |
|---|---|---|
graphql-playground-html npm | All versions | 1.6.22 |
graphql-playground-html npm | All versions | 1.6.22 |
Products include Prisma Graphql-Playground-Html, Prisma Graphql-Playground-Middleware-Express, Prisma Graphql-Playground-Middleware-Hapi, Prisma Graphql-Playground-Middleware-Koa, Prisma Graphql-Playground-Middleware-Lambda.
How do I fix CVE-2020-4038?
Upgrade graphql-playground-html to 1.6.22 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2020-4038 being exploited?
There is no known exploitation of CVE-2020-4038 in the wild and no public exploit code.
Sources
Also known as GHSA-4852-vrh7-28rf.