Security Digest · Vulnerability record
CVE-2025-27407: graphql allows remote code execution when loading a crafted GraphQL schema
graphql-ruby is a Ruby implementation of GraphQL.
CVSS 9.1 Critical EPSS 3.1% · p88
Should you act?
Critical and remotely reachable
No known exploitation yet, but it is network-reachable without credentials. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.
- No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
- EPSS 3.1%, percentile 88: FIRST’s model estimates a 3.1% chance of exploitation activity in the next 30 days, higher than 88% of all scored CVEs (elevated). EPSS is a probability, not a verdict.
- Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
- Only applies if your dependency tree includes
graphql(RubyGems) >= 2.4.0, < 2.4.13, fixed in 2.4.13;graphql(RubyGems) >= 2.3.0, < 2.3.21, fixed in 2.3.21;graphql(RubyGems) >= 2.0.0, < 2.0.32, fixed in 2.0.32;graphql(RubyGems) >= 1.13.0, < 1.13.24, fixed in 1.13.24. Check your lockfile, including transitive dependencies.
What it is
graphql-ruby is a Ruby implementation of GraphQL. Starting in version 1.11.5 and prior to versions 1.11.8, 1.12.25, 1.13.24, 2.0.32, 2.1.14, 2.2.17, and 2.3.21, loading a malicious schema definition in GraphQL::Schema.fromintrospection (or GraphQL::Schema::Loader.load) can result in remote code execution. Any system which loads a schema by JSON from an untrusted source is vulnerable, including those that use GraphQL::Client to load external schemas via GraphQL introspection. Versions 1.11.8, 1.12.25, 1.13.24, 2.0.32, 2.1.14, 2.2.17, and 2.3.21 contain a patch for the issue.
From the GitHub advisory
Summary
Loading a malicious schema definition in GraphQL::Schema.fromintrospection (or GraphQL::Schema::Loader.load) can result in remote code execution. Any system which loads a schema by JSON from an untrusted source is vulnerable, including those that use GraphQL::Client to load external schemas via GraphQL introspection.
Weakness type: CWE-94.
Product: graphql (RubyGems) · Assigned by: GitHub_M · Published: 2025-03-12
Affected and fixed versions
| Ecosystem | Package | Vulnerable | First fixed |
|---|---|---|---|
| RubyGems | graphql | >= 2.4.0, < 2.4.13 | 2.4.13 |
| RubyGems | graphql | >= 2.3.0, < 2.3.21 | 2.3.21 |
| RubyGems | graphql | >= 2.0.0, < 2.0.32 | 2.0.32 |
| RubyGems | graphql | >= 1.13.0, < 1.13.24 | 1.13.24 |
| RubyGems | graphql | >= 1.12.0, < 1.12.25 | 1.12.25 |
| RubyGems | graphql | >= 2.1.0, < 2.1.15 | 2.1.15 |
| RubyGems | graphql | >= 1.11.5, < 1.11.11 | 1.11.11 |
| RubyGems | graphql | >= 2.2.0, < 2.2.17 | 2.2.17 |
| Vendor | Product | Affected versions (per CVE record) |
|---|---|---|
| rmosolgo | graphql-ruby | >= 1.11.5, < 1.11.8, >= 1.12.0, < 1.12.25, >= 1.13.0, < 1.13.24, >= 2.0.0, < 2.0.32, >= 2.1.0, < 2.1.14, >= 2.2.0, < 2.2.17, >= 2.3.0, < 2.3.21 |
Severity scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| GitHub_M | 3.1 | 9.1 Critical | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 9.0 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
- Attack vector: network (remotely reachable)
- Attack complexity: high (needs special conditions)
- Privileges required: none (no login)
- User interaction: none
- Scope: changed (can affect other components)
CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.
Exploitation and urgency
- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation none, automatable no, technical impact total.
- FIRST EPSS (model of 2026-10-21): 3.10% probability of exploitation activity in the next 30 days; percentile 88.
Timeline
- — CVE record published by GitHub_M
- — GitHub-reviewed advisory GHSA-q92j-grw3-h492 published (critical)
- — CVE record last updated
Sources and references
Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.
Vulnerability records
- GitHub Advisory GHSA-q92j-grw3-h492 github.com
- CVE.org record CVE-2025-27407 cve.org
- NVD entry CVE-2025-27407 nvd.nist.gov
Other references from the CVE record and advisory
- github.com github.com
- github.com github.com
- github.com github.com
- github.com github.com
- github.com github.com
- github.com github.com
- github.com github.com
- github.com github.com
- about.gitlab.com about.gitlab.com
- github.com github.com
- lists.debian.org lists.debian.org
- github.com github.com
- github.com github.com