{"items":[{"id":"NVI-00009129","kind":"vulnerability","title":"GraphQL-core has denial of service via memory leak in aborted validations","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-mpqx-q82w-9x46","CVE-2026-119286"],"plain_summary":"GitHub lists this reviewed advisory for graphql-core. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-097faee474acd211084554fea2df13e6"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-10-30T22:58:33.000Z","value":"7.5 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-c190eccf3bcb0480fa0d3bc189d60ea4"},{"kind":"EPSS","as_of":"2026-11-05T12:03:04.000Z","value":"0.421%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.36633. Missing scores are unknown.","source_id":"sr-097faee474acd211084554fea2df13e6"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-c190eccf3bcb0480fa0d3bc189d60ea4","url":"https://github.com/advisories/GHSA-mpqx-q82w-9x46","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-mpqx-q82w-9x46","publisher":"GitHub Advisory Database","observed_at":"2026-10-31T21:55:49.621Z"},{"id":"sr-097faee474acd211084554fea2df13e6","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-119286","publisher":"FIRST EPSS","observed_at":"2026-11-06T00:24:57.641Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-c190eccf3bcb0480fa0d3bc189d60ea4"],"technology":"graphql-core","known_exclusions":[],"conditions_summary":"### Summary\n\nWhen a validation was aborted because the document contained more errors than allowed by `max_errors` (100 by default), `validate()` raised a single module-level `ValidationAbortedError` instance. Python appends the frames of every `raise` to the existing `__traceback__` of an exception that is raised again, so every aborted validation extended the traceback of this shared error. That traceback kept the frames, and with them the document, the validation context and all errors of every aborted validation, alive for the lifetime of the process.\n\n### Details\n\nAny client can trigger an aborted validation by sending a small document with more than 100 validation errors, e.g. 101 unknown fields. No authentication is required, and since validation runs before execution, depth limiters and complexity analyzers do not prevent it. Each such request permanently retained about 124 KiB on CPython 3.12, without an upper limit, so memory grew with every request until the process was restarted or killed.\n\nGraphQL.js uses a shared error object at the same place, but JavaScript errors capture their stack trace only once when they are created, so it is not affected. GraphQL-core 3.2 crea","public_affected_ranges":[">= 3.3.0a3, < 3.3.1"]}],"null_published_at":"2026-11-08T15:11:49.414Z","source_updated_at":"2026-10-30T22:58:33.000Z","source_disclosed_at":"2026-10-30T22:58:31.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:55:49.621Z"},{"id":"NVI-00009129","kind":"vulnerability","title":"GraphQL-core has denial of service via memory leak in aborted validations","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-mpqx-q82w-9x46","CVE-2026-119286"],"plain_summary":"GitHub lists this reviewed advisory for graphql-core. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-be0d6c544a5590cfbe15341ded24a707"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-10-30T22:58:33.000Z","value":"7.5 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-c190eccf3bcb0480fa0d3bc189d60ea4"},{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"0.421%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.3649. Missing scores are unknown.","source_id":"sr-be0d6c544a5590cfbe15341ded24a707"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-c190eccf3bcb0480fa0d3bc189d60ea4","url":"https://github.com/advisories/GHSA-mpqx-q82w-9x46","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-mpqx-q82w-9x46","publisher":"GitHub Advisory Database","observed_at":"2026-10-31T21:55:49.621Z"},{"id":"sr-be0d6c544a5590cfbe15341ded24a707","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-119286","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.375Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-c190eccf3bcb0480fa0d3bc189d60ea4"],"technology":"graphql-core","known_exclusions":[],"conditions_summary":"### Summary\n\nWhen a validation was aborted because the document contained more errors than allowed by `max_errors` (100 by default), `validate()` raised a single module-level `ValidationAbortedError` instance. Python appends the frames of every `raise` to the existing `__traceback__` of an exception that is raised again, so every aborted validation extended the traceback of this shared error. That traceback kept the frames, and with them the document, the validation context and all errors of every aborted validation, alive for the lifetime of the process.\n\n### Details\n\nAny client can trigger an aborted validation by sending a small document with more than 100 validation errors, e.g. 101 unknown fields. No authentication is required, and since validation runs before execution, depth limiters and complexity analyzers do not prevent it. Each such request permanently retained about 124 KiB on CPython 3.12, without an upper limit, so memory grew with every request until the process was restarted or killed.\n\nGraphQL.js uses a shared error object at the same place, but JavaScript errors capture their stack trace only once when they are created, so it is not affected. GraphQL-core 3.2 crea","public_affected_ranges":[">= 3.3.0a3, < 3.3.1"]}],"null_published_at":"2026-11-06T21:03:47.998Z","source_updated_at":"2026-10-30T22:58:33.000Z","source_disclosed_at":"2026-10-30T22:58:31.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:55:49.621Z"},{"id":"NVI-00009129","kind":"vulnerability","title":"GraphQL-core has denial of service via memory leak in aborted validations","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-mpqx-q82w-9x46","CVE-2026-119286"],"plain_summary":"GitHub lists this reviewed advisory for graphql-core. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-c190eccf3bcb0480fa0d3bc189d60ea4"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-10-30T22:58:33.000Z","value":"7.5 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-c190eccf3bcb0480fa0d3bc189d60ea4"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-c190eccf3bcb0480fa0d3bc189d60ea4","url":"https://github.com/advisories/GHSA-mpqx-q82w-9x46","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-mpqx-q82w-9x46","publisher":"GitHub Advisory Database","observed_at":"2026-10-31T21:55:49.621Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-c190eccf3bcb0480fa0d3bc189d60ea4"],"technology":"graphql-core","known_exclusions":[],"conditions_summary":"### Summary\n\nWhen a validation was aborted because the document contained more errors than allowed by `max_errors` (100 by default), `validate()` raised a single module-level `ValidationAbortedError` instance. Python appends the frames of every `raise` to the existing `__traceback__` of an exception that is raised again, so every aborted validation extended the traceback of this shared error. That traceback kept the frames, and with them the document, the validation context and all errors of every aborted validation, alive for the lifetime of the process.\n\n### Details\n\nAny client can trigger an aborted validation by sending a small document with more than 100 validation errors, e.g. 101 unknown fields. No authentication is required, and since validation runs before execution, depth limiters and complexity analyzers do not prevent it. Each such request permanently retained about 124 KiB on CPython 3.12, without an upper limit, so memory grew with every request until the process was restarted or killed.\n\nGraphQL.js uses a shared error object at the same place, but JavaScript errors capture their stack trace only once when they are created, so it is not affected. GraphQL-core 3.2 crea","public_affected_ranges":[">= 3.3.0a3, < 3.3.1"]}],"null_published_at":"2026-10-31T22:13:31.285Z","source_updated_at":"2026-10-30T22:58:33.000Z","source_disclosed_at":"2026-10-30T22:58:31.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-10-31T21:55:49.621Z"}],"next_cursor":null,"snapshot_revision":"42594"}