Skip to content
Heist/ feed
Back to feed
High

apollo-compiler Named Fragment Processing Vulnerability

Type: advisorySources: OSV

apollo-compiler is a query-based compiler for the GraphQL query language. Prior to 1.27.0, a vulnerability in Apollo Compiler allowed queries with deeply nested and reused named fragments to be prohibitively expensive to validate. Named fragments were being processed once per fragment spread in some cases during query validation, leading to exponential resource usage when deeply nested and reused fragments were involved. This could lead to excessive resource consumption and denial of service in applications. This vulnerability is fixed in 1.27.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2025-31496
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 13:08 UTC · Revision 1

Source evidence

apollo-compiler Named Fragment Processing Vulnerability

core-osv · Original source

Published 7 Apr 2025, 20:34 UTC

apollo-compiler is a query-based compiler for the GraphQL query language. Prior to 1.27.0, a vulnerability in Apollo Compiler allowed queries with deeply nested and reused named fragments to be prohibitively expensive to validate. Named fragments were being processed once per fragment spread in some cases during query validation, leading to exponential resource usage when deeply nested and reused fragments were involved. This could lead to excessive resource consumption and denial of service in applications. This vulnerability is fixed in 1.27.0.

osv:CVE-2025-31496
Complete source record
{
  "id": "1a5f35d2eb448d4cc06ec999a16d1c3866d88a79124cbf4fed4bbc57c70a85e4",
  "url": "https://osv.dev/vulnerability/CVE-2025-31496",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "apollo-compiler Named Fragment Processing Vulnerability",
    "summary": "apollo-compiler is a query-based compiler for the GraphQL query language. Prior to 1.27.0, a vulnerability in Apollo Compiler allowed queries with deeply nested and reused named fragments to be prohibitively expensive to validate. Named fragments were being processed once per fragment spread in some cases during query validation, leading to exponential resource usage when deeply nested and reused fragments were involved. This could lead to excessive resource consumption and denial of service in applications. This vulnerability is fixed in 1.27.0.",
    "evidence": "osv:CVE-2025-31496",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2025-31496",
      "aliases": [
        "CVE-2025-31496",
        "GHSA-7mpv-9xg6-5r79"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/apollographql/apollo-rs",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "f20ac42562f63a21bd3b3477af0d7ca4fa8a97ed"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.27.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.27.0"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "apollo-compiler@1.0.0-beta.18",
            "apollo-compiler@1.26.0",
            "apollo-parser@0.8.4",
            "apollo-smith@0.15.0",
            "apollo-compiler@1.25.0",
            "apollo-parser@0.8.3",
            "apollo-smith@0.14.0",
            "apollo-compiler@1.0.0-beta.24",
            "apollo-smith@0.13.0",
            "apollo-compiler@1.0.0-beta.23",
            "apollo-smith@0.12.0",
            "apollo-compiler@1.0.0-beta.22",
            "apollo-smith@0.11.0",
            "apollo-compiler@1.0.0-beta.21",
            "apollo-parser@0.8.1",
            "apollo-smith@0.10.0",
            "apollo-compiler@1.0.0-beta.20",
            "apollo-parser@0.8.0",
            "apollo-smith@0.9.0",
            "apollo-compiler@1.0.0-beta.19",
            "apollo-smith@0.8.0",
            "apollo-smith@0.7.0",
            "apollo-compiler@1.0.0-beta.17",
            "apollo-compiler@1.0.0-beta.16",
            "apollo-compiler@1.0.0-beta.15",
            "apollo-parser@0.7.7",
            "apollo-compiler@1.0.0-beta.14",
            "apollo-compiler@1.0.0-beta.13",
            "apollo-parser@0.7.6",
            "apollo-compiler@1.0.0-beta.12",
            "apollo-compiler@1.0.0-beta.11",
            "apollo-parser@0.7.5",
            "apollo-compiler@1.0.0-beta.10",
            "apollo-smith@0.6.0-beta.1",
            "apollo-compiler@1.0.0-beta.9",
            "apollo-compiler@1.0.0-beta.8",
            "apollo-compiler@1.0.0-beta.7",
            "apollo-parser@0.7.4",
            "apollo-compiler@1.0.0-beta.6",
            "apollo-compiler@1.0.0-beta.5",
            "apollo-parser@0.7.3",
            "apollo-parser@0.7.2",
            "apollo-compiler@1.0.0-beta.4",
            "apollo-compiler@1.0.0-beta.3",
            "apollo-compiler@1.0.0-beta.2",
            "apollo-parser@0.7.1",
            "apollo-parser@0.7.0",
            "apollo-compiler@1.0.0-beta.1",
            "apollo-compiler@1.0.0-alpha",
            "apollo-compiler@0.11.1",
            "apollo-smith@0.4.0",
            "apollo-encoder@0.7.0",
            "apollo-compiler@0.11.0",
            "apollo-parser@0.6.0",
            "apollo-encoder@0.6.0",
            "apollo-compiler@0.10.0",
            "apollo-compiler@0.9.4",
            "apollo-compiler@0.9.3",
            "apollo-compiler@0.9.2",
            "apollo-compiler@0.9.1",
            "apollo-compiler@0.9.0",
            "apollo-parser@0.5.3",
            "apollo-parser@0.5.2",
            "apollo-compiler@0.8.0",
            "apollo-encoder@0.5.1",
            "apollo-parser@0.5.1",
            "apollo-compiler@0.7.2",
            "apollo-compiler@0.7.1",
            "apollo-compiler@0.7.0",
            "apollo-encoder@0.5.0",
            "apollo-parser@0.5.0",
            "apollo-smith@0.3.2",
            "apollo-compiler@0.6.0",
            "apollo-compiler@0.5.0",
            "apollo-compiler@0.4.1",
            "apollo-parser@0.4.1",
            "apollo-smith@0.3.1",
            "apollo-compiler@0.4.0",
            "apollo-encoder@0.4.0",
            "apollo-smith@0.3.0",
            "apollo-parser@0.4.0",
            "apollo-parser@0.3.2",
            "apollo-smith@0.2.0",
            "apollo-smith@0.1.5",
            "apollo-encoder@0.3.4",
            "apollo-parser@0.3.1",
            "apollo-smith@0.1.4",
            "apollo-compiler@0.3.0",
            "apollo-encoder@0.3.3",
            "apollo-parser@0.3.0",
            "apollo-parser@0.2.12",
            "apollo-parser@0.2.11",
            "apollo-encoder@0.3.2",
            "apollo-parser@0.2.10",
            "apollo-compiler@0.2.0",
            "apollo-parser@0.2.9",
            "apollo-compiler@0.1.0",
            "apollo-parser@0.2.8",
            "apollo-parser@0.2.7",
            "apollo-parser@0.2.6",
            "apollo-smith@0.1.3",
            "apollo-encoder@0.3.1",
            "apollo-smith@0.1.2",
            "apollo-encoder@0.3.0",
            "apollo-smith@0.1.1",
            "apollo-parser@0.2.5",
            "apollo-encoder@0.2.3",
            "apollo-parser@0.2.4",
            "apollo-encoder@0.2.2",
            "apollo-smith@0.1.0",
            "apolloparser-0.2.3",
            "apolloencoder-0.2.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-31496.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:29.111138425Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/31xxx/CVE-2025-31496.json",
        "https://github.com/apollographql/apollo-rs/security/advisories/GHSA-7mpv-9xg6-5r79",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-31496",
        "https://github.com/apollographql/apollo-rs/pull/952"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-770"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/31xxx/CVE-2025-31496.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-31496",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 495689,
  "published_at": "2025-04-07T20:34:46.624+00:00"
}