Zero Radar
← feed
HighVulnerabilityCVE-2026-115887updated 30 Oct 2026, 15:38 UTC

GraphQL phone number checker can freeze a Node.js server

A specially crafted phone-number input can make the server spend many seconds on one request, so it stops answering other users. Anyone can send such a request without logging in.

Fixed in graphql-scalars 2.0.1Official, 2 sources
SeverityHighCVSS 7.5 of 10
Being exploited?UnclearNo reports either way yet
Fix available?Yesgraphql-scalars 2.0.1 · since 28 Oct 2026
How sure is this?Official, 2 sourcesBacked by an official source

How the attack works simplified

  1. 1AttackerSends one small unauthenticated request
  2. 2PhoneNumber inputLong digit run followed by a letter
  3. 3Validation runs regexRuns before any auth check
  4. 4Event loop blockedRegex time doubles per extra digit
  5. ResultServer process stalls for seconds

What happened

In graphql-scalars, the GraphQLPhoneNumber scalar uses a regular expression with nested optional digit quantifiers that backtrack exponentially on a long run of digits followed by a non-matching character (ReDoS). graphql-js runs parseLiteral during validation and parseValue during variable coercion, before authentication, so an unauthenticated request can block the Node.js event loop.

Why it is dangerous: A single small request can stall the whole server process, causing denial of service for every user. Any GraphQL API using the affected PhoneNumber scalar is exposed, including public endpoints with no login.

Are you affected?

You are affected if your project uses the graphql-scalars npm package at version 1.24.1 through 2.0.0 and exposes the PhoneNumber scalar in its GraphQL schema.

Package / productAffected versionsFixed in
graphql-scalars · npm<= 2.0.02.0.1
graphql-scalars · npm>= 1.24.1, <= 2.0.02.0.1

What to do

  1. Update graphql-scalars to version 2.0.1 or later (npm install graphql-scalars@2.0.1)
  2. Check your lockfile and transitive dependencies to confirm no older affected version remains
  3. Redeploy the GraphQL server after updating

Timeline

  1. 23 Oct 2026, 22:16 UTC
    Publicly disclosed
  2. 23 Oct 2026, 22:16 UTC
    Reported by NVD · NVD
  3. 28 Oct 2026, 21:13 UTC
    GitHub Advisory reported on it · GitHub Advisory
  4. 28 Oct 2026, 21:13 UTC
    Fixed version published: graphql-scalars 2.0.1 · GitHub Advisory

Sources 2 reports, oldest first

Official vendor, government CERT or advisory database

Technical details

ID
CVE-2026-115887 · GHSA-x8rm-f576-gq67
CVSS
7.5 / 10
EPSS
0.5% chance of exploitation within 30 days
Disclosed
23 Oct 2026, 22:16 UTC
On Zero Radar
before the radar started
Last change
30 Oct 2026, 15:38 UTC

The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works

GraphQL phone number checker can freeze a Node.js server · Zero Radar