CVE-2026-115938

Source
https://cve.org/CVERecord?id=CVE-2026-115938
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-115938.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-115938
Aliases
  • GHSA-v4q3-2g5g-wjj6
Downstream
Published
2026-10-23T21:58:51Z
Modified
2026-11-04T02:30:49Z
Severity
  • 8.7 (High) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS Calculator
Summary
Low privilege condition filter escapes Twig sandbox, recovers "securityKey" and reaches RCE
Details

Craft CMS allows any authenticated control panel user to submit an element-search condition whose element selector is evaluated as a sandboxed Twig object template. Craft’s allowed column filter delegates property lookup to Yii ArrayHelper, outside Twig’s SecurityPolicy. Repeated single-segment lookups therefore bypass the sandbox’s empty property/method allowlists.

The vulnerable condition value is ultimately cast to an integer. That does not protect the secret: the template can return author ID 1 when a guessed key character is correct and an impossible ID otherwise. The JSON endpoint returns entries for the first case and an empty array for the second, forming a stable remote character oracle.

After recovering GeneralConfig::securityKey, the same user can compute Craft’s generic HMAC wire format offline. Signed parameters such as redirect are then accepted and passed to unsandboxed View::renderObjectTemplate(), where Twig’s string-callable form can invoke native PHP callables. The regression proof uses the harmless substr() callback and observes abcdef becoming cdef; it does not execute an OS command.

Database specific
{
    "cna_assigner": "Hackrate",
    "cwe_ids": [
        "CWE-1336"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115938.json"
}
References

Affected packages

Git / github.com/craftcms/cms

Affected ranges

Type
GIT
Repo
https://github.com/craftcms/cms
Events
Database specific
Show details
{
    "extracted_events": [
        {
            "range": [
                {
                    "introduced": "5.0.0"
                },
                {
                    "fixed": "5.11.2"
                }
            ],
            "source": "AFFECTED_FIELD",
            "strategy": "StandardRange"
        },
        {
            "range": [
                {
                    "introduced": "4.0.0"
                },
                {
                    "fixed": "4.18.9"
                }
            ],
            "source": "AFFECTED_FIELD",
            "strategy": "StandardRange"
        },
        {
            "original_tag": "5.11.2",
            "range": [
                {
                    "fixed": "a29fe6f87bbba6453e9d488ab8a8145a8a9e4f96"
                }
            ],
            "source": "REFERENCES_TAG"
        }
    ]
}

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-115938.json"