{"id":"CVE-2026-112774","kind":"vulnerability","aliases":["CVE-2026-112774"],"related":[],"title":"Craft CMS: admin field layout input lets an admin run OS commands","description":"Craft CMS from 5.8.0 before 5.11.0 contains a remote code execution vulnerability that allows authenticated administrators to inject Yii behaviors by supplying a JSON-string field layout to ContentBlock::setFieldLayout(). Attackers with allowAdminChanges enabled can include 'as X' or 'on X' keys that bypass cleanseConfig() to execute OS commands as the web user and disclose secrets.","summary":"Craft CMS 5.8.0 before 5.11.0 lets an authenticated administrator inject Yii behaviors through a JSON field layout passed to ContentBlock::setFieldLayout(). The injected 'as X' or 'on X' keys bypass cleanseConfig(), so the attacker runs OS commands as the web user and can read secrets.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["craft-cms","php","runtime","self-hosted"],"not_affected_if":["allowadminchanges-disabled","version-5.11.0-or-later","version-below-5.8.0"],"how_to_check":"Check the installed Craft version in composer.lock for craftcms/cms; a version from 5.8.0 up to but not including 5.11.0 is affected.\nCheck config/general.php for allowAdminChanges; it must be enabled for this path to work.","fix":"Upgrade craftcms/cms to 5.11.0 or later.\nUntil then, set allowAdminChanges to false in production and limit admin accounts to trusted people.","status":"open","published_at":"2026-10-19T20:17:54+00:00","first_seen_at":"2026-10-23T21:57:19+00:00","triaged_at":"2026-10-23T22:37:30+00:00","updated_at":"2026-10-23T22:37:30+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-10-23T22:37:30Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade craftcms/cms to 5.11.0 or later.\nUntil then, set allowAdminChanges to false in production and limit admin accounts to trusted people.","reach":"internet","title":"Craft CMS: admin field layout input lets an admin run OS commands","impact":"high","summary":"Craft CMS 5.8.0 before 5.11.0 lets an authenticated administrator inject Yii behaviors through a JSON field layout passed to ContentBlock::setFieldLayout(). The injected 'as X' or 'on X' keys bypass cleanseConfig(), so the attacker runs OS commands as the web user and can read secrets.","category":"runtime","who_cares":["craft-cms","php","self-hosted"],"confidence":0.8,"needs_auth":"yes","worst_case":"Code runs on the server as the web user and secrets are readable.","analyst_note":"","how_to_check":"Check the installed Craft version in composer.lock for craftcms/cms; a version from 5.8.0 up to but not including 5.11.0 is affected.\nCheck config/general.php for allowAdminChanges; it must be enabled for this path to work.","needs_analyst":false,"not_affected_if":["version-below-5.8.0","version-5.11.0-or-later","allowAdminChanges-disabled"],"user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.00054,"input_tokens":2963,"output_tokens":488,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-112774':15A,18A '-2026':14A,17A '5.11.0':31B,77C '5.8.0':29B,75C 'admin':3A,9A 'administr':35B,87C 'allow':85C 'allowadminchang':105C 'attack':60B,103C 'authent':34B,86C 'behavior':38B,91C 'bypass':56B,116C 'cleanseconfig':57B,117C 'cms':2A,21B,28B,73C 'code':81C 'command':12A,63B,121C 'contain':78C 'contentblock':46B,101C 'craft':1A,20B,27B,72C 'craft-cm':19B 'cve':13A,16A 'disclos':127C 'enabl':106C 'execut':82C,119C 'field':4A,42B,98C 'host':26B 'includ':108C 'inject':36B,49B,89C 'input':6A 'json':41B,96C 'json-str':95C 'key':55B,114C 'layout':5A,43B,99C 'let':7A,32B 'os':11A,62B,120C 'pass':44B 'php':22B 'read':70B 'remot':80C 'run':10A,61B 'runtim':23B 'secret':71B,128C 'self':25B 'self-host':24B 'setfieldlayout':47B,102C 'string':97C 'suppli':93C 'user':67B,125C 'vulner':83C 'web':66B,124C 'x':51B,54B,110C,113C 'yii':37B,90C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-19T20:17:54+00:00","kev":null,"cvss_vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112774","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112774","severity":null,"published_at":"2026-10-19T20:17:54+00:00","modified_at":"2026-10-20T15:17:14+00:00","first_seen_at":"2026-10-23T21:57:19+00:00","fetched_at":"2026-10-23T22:28:57+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}