CVE-2020-4038 Reflected XSS in GraphQL Playground

High 7.4 Published Updated

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.

PackageAffectedFixed in
graphql-playground-html npmAll versions1.6.22
graphql-playground-html npmAll versions1.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.

Is CVE-2020-4038 in your software?

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

Check your SBOMs for free