{"answers":{"affected":"4 open source packages ship an affected version, including craftcms/cms. It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-28781 exists.","fix":"Upgrade craftcms/cms to a fixed version for your release line: 4.17.0-beta.1 or 5.9.0-beta.1.","what":"CVE-2026-28781 is a high-severity vulnerability in Craftcms Craft Cms, published on 4 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-28781 and fix it if it is affected.\n\nWhat it is: CVE-2026-28781 is a high-severity vulnerability in Craftcms Craft Cms, published on 4 Mar 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-28781 exists.\n\nAffected packages and fixed versions:\n- craftcms/cms (Packagist): affected from 4.0.0-RC1; fixed in 4.17.0-beta.1\n- craftcms/cms (Packagist): affected from 4.0.0-RC1; fixed in 4.17.0-beta.1\n- craftcms/cms (Packagist): affected from 5.0.0-RC1; fixed in 5.9.0-beta.1\n- craftcms/cms (Packagist): affected from 5.0.0-RC1; fixed in 5.9.0-beta.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-28781/ (Markdown: https://insights.sbomify.com/CVE-2026-28781/index.md)","id":"CVE-2026-28781","markdown":"https://insights.sbomify.com/CVE-2026-28781/index.md","name":"CVE-2026-28781","record":{"aliases":["GHSA-2xfc-g69j-x2mp"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["data_modify","security_bypass"],"network_reachable":"yes","non_default_config":false,"product_category":"Craft CMS","requires_auth":"low_privilege","summary":"Attackers with entry creation permissions can spoof authorship by injecting authorId parameters, attributing content to unauthorized users like admins.","user_interaction":"not_required","vuln_class":"business_logic"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"craft_cms","vendor":"craftcms"}],"cvss":{"score":7.1,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-915","name":"Improperly Controlled Modification of Dynamically-Determined Object Attributes"},{"id":"CWE-639","name":"Authorization Bypass Through User-Controlled Key"}],"description":"Craft is a content management system (CMS). Prior to 4.17.0-beta.1 and 5.9.0-beta.1, the entry creation process allows for Mass Assignment of the authorId attribute. A user with \"Create Entries\" permission can inject the authorIds[] (or authorId) parameter into the POST request, which the backend processes without verifying if the current user is authorized to assign authorship to others. Normally, this field is not present in the request for users without the necessary permissions. By manually adding this parameter, an attacker can attribute the new entry to any user, including Admins. This effectively \"spoofs\" the authorship. This vulnerability is fixed in 4.17.0-beta.1 and 5.9.0-beta.1.","ecosystems":["Packagist"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"Craft Affected by Entries Authorship Spoofing via Mass Assignment","id":"CVE-2026-28781","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Packagist","product":"craftcms:craft_cms","products":["craftcms:craft_cms"],"type":"business_logic","year":"2026"},"n_packages":4,"n_references":3,"next":{"headline":"Craft has a Permission Bypass and IDOR in Duplicate Entry Action","id":"CVE-2026-28782"},"packages":[{"ecosystem":"Packagist","fixed":["4.17.0-beta.1"],"introduced":["4.0.0-RC1"],"last_affected":[],"package":"craftcms/cms","purl":null,"source":"GHSA-2xfc-g69j-x2mp"},{"ecosystem":"Packagist","fixed":["4.17.0-beta.1"],"introduced":["4.0.0-RC1"],"last_affected":[],"package":"craftcms/cms","purl":"pkg:composer/craftcms/cms","source":"GHSA-2xfc-g69j-x2mp"},{"ecosystem":"Packagist","fixed":["5.9.0-beta.1"],"introduced":["5.0.0-RC1"],"last_affected":[],"package":"craftcms/cms","purl":null,"source":"GHSA-2xfc-g69j-x2mp"},{"ecosystem":"Packagist","fixed":["5.9.0-beta.1"],"introduced":["5.0.0-RC1"],"last_affected":[],"package":"craftcms/cms","purl":"pkg:composer/craftcms/cms","source":"GHSA-2xfc-g69j-x2mp"}],"prev":{"headline":"Apache HTTP Server: buffer overflow in mod_proxy_ajp via ajp_msg_check_header()","id":"CVE-2026-28780"},"products":["cms"],"published":"2026-03-04","related":[{"cvss_score":10,"headline":"Craft CMS Code Injection","id":"CVE-2025-32432","kev_date_added":"2026-03-20","published":"2025-04-25"},{"cvss_score":9.3,"headline":"Craft CMS Code Injection","id":"CVE-2024-56145","kev_date_added":"2025-06-02","published":"2024-12-18"},{"cvss_score":8.1,"headline":"Craft CMS Code Injection","id":"CVE-2025-23209","kev_date_added":"2025-02-20","published":"2025-01-18"},{"cvss_score":6.9,"headline":"Craft CMS External Control of Assumed-Immutable Web Parameter","id":"CVE-2025-35939","kev_date_added":"2025-06-02","published":"2025-05-07"},{"cvss_score":10,"headline":"Craft CMS Remote Code Execution vulnerability","id":"CVE-2023-41892","kev_date_added":null,"published":"2023-09-13"},{"cvss_score":9.8,"headline":"Craft CMS Remote Code Injection","id":"CVE-2021-27903","kev_date_added":null,"published":"2021-06-30"},{"cvss_score":9.8,"headline":"SEOmatic for CraftCMS allows Server-Side Template Injection","id":"CVE-2020-9757","kev_date_added":null,"published":"2020-03-04"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-03-04","vendors":["craftcms"]},"summary":"Attackers with entry creation permissions can spoof authorship by injecting authorId parameters, attributing content to unauthorized users like admins.","url":"https://insights.sbomify.com/CVE-2026-28781/"}