CVE-2025-27407 is a remote code execution vulnerability in graphql-ruby affecting versions starting at 1.11.5 and before 1.11.8, 1.12.25, 1.13.24, 2.0.32, 2.1.14, 2.2.17, and 2.3.21. The issue is triggered when a malicious GraphQL schema definition is loaded through GraphQL::Schema.from_introspection or GraphQL::Schema::Loader.load. Systems that ingest schema JSON or introspection results from untrusted sources are vulnerable. This includes deployments that use GraphQL::Client to import external schemas via introspection. In GitLab, the flaw was reachable under certain circumstances through the Direct Transfer feature when an attacker-controlled authenticated user transferred a specially crafted project.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
GraphQL::Schema.from_introspection or GraphQL::Schema::Loader.load on externally supplied schemas until patched. Restrict schema-loading inputs to trusted sources only. In GitLab environments, disable the beta Direct Transfer feature if patching cannot be performed immediately.Patch, then assume compromise.
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).
Repository is a small standalone exploit lab for CVE-2025-27407 against GitLab Direct Transfer / bulk import functionality. It contains two executable components: a Bash lab orchestrator (lab.sh) and a Python PoC (poc_host_port_cmd.py). The Bash script provisions a vulnerable GitLab CE 16.11.8 container with Podman, waits for readiness, enables bulk import and local callback settings through gitlab-rails, and verifies exploitation by checking for a marker file inside the container. The Python PoC is the main exploit: it authenticates to a target GitLab instance, starts an in-process attacker-controlled HTTP server that impersonates a GitLab source instance, and serves crafted API responses including a malicious /api/graphql introspection schema. The schema embeds Ruby code into a field/input name so that when GitLab processes the schema during Direct Transfer import, it executes system(command) in the GitLab runtime. The default command creates /tmp/cve_2025_27407_gitlab_marker, but --cmd allows arbitrary command execution. The exploit is operational rather than just a detector because it performs end-to-end login, import triggering, malicious callback hosting, and payload delivery. The repository appears intended for local lab validation and proof-of-concept exploitation, not as part of a larger framework.
3 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Critical remote code execution vulnerability in the Ruby graphql library that can be exploited by a remote authenticated attacker via a specially crafted project during transfer using the beta Direct Transfer feature.
A vulnerability in the Ruby graphql library affecting GitLab that can lead to remote code execution when an authenticated attacker transfers a maliciously crafted project via the Direct Transfer feature.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.