Craft CMS 5.0.0 before 5.10.13 Broken Access Control via nested-elements/reorder
Craft CMS 5.0.0 through 5.10.12 (fixed in 5.10.13) contains a broken access control flaw in the nested-elements reorder endpoint. When an authenticated control panel user with viewEntries and viewPeerEntries (but without savePeerEntries) opens another author's entry in read-only mode, Craft unconditionally grants that session a `manageNestedElements::::field:` authorization flag for the entry's Matrix/Address fields. Unlike the corresponding delete endpoint, actions/nested-elements/reorder trusts this session flag alone and never rechecks the caller's save permission for the owner element. As a result, a view-only user can POST to actions/nested-elements/reorder using the ownerElementType, ownerId, ownerSiteId, attribute, elementIds, and offset parameters present in the read-only page source and rewrite the sort order of Matrix blocks or Addresses belonging to content they are explicitly denied save access to.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-92589
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 03:52 UTC · Revision 1
Source evidence
Craft CMS 5.0.0 before 5.10.13 Broken Access Control via nested-elements/reorder
core-osv · Original sourcePublished 16 Sept 2026, 21:46 UTC
Craft CMS 5.0.0 through 5.10.12 (fixed in 5.10.13) contains a broken access control flaw in the nested-elements reorder endpoint. When an authenticated control panel user with viewEntries and viewPeerEntries (but without savePeerEntries) opens another author's entry in read-only mode, Craft unconditionally grants that session a `manageNestedElements::::field:` authorization flag for the entry's Matrix/Address fields. Unlike the corresponding delete endpoint, actions/nested-elements/reorder trusts this session flag alone and never rechecks the caller's save permission for the owner element. As a result, a view-only user can POST to actions/nested-elements/reorder using the ownerElementType, ownerId, ownerSiteId, attribute, elementIds, and offset parameters present in the read-only page source and rewrite the sort order of Matrix blocks or Addresses belonging to content they are explicitly denied save access to.
osv:CVE-2026-92589
Complete source record
{
"id": "3ce0068c50443a33484096fe49df60a7003790c9e7a03197e6129e6f6b6d16d8",
"url": "https://osv.dev/vulnerability/CVE-2026-92589",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Craft CMS 5.0.0 before 5.10.13 Broken Access Control via nested-elements/reorder",
"summary": "Craft CMS 5.0.0 through 5.10.12 (fixed in 5.10.13) contains a broken access control flaw in the nested-elements reorder endpoint. When an authenticated control panel user with viewEntries and viewPeerEntries (but without savePeerEntries) opens another author's entry in read-only mode, Craft unconditionally grants that session a `manageNestedElements::::field:` authorization flag for the entry's Matrix/Address fields. Unlike the corresponding delete endpoint, actions/nested-elements/reorder trusts this session flag alone and never rechecks the caller's save permission for the owner element. As a result, a view-only user can POST to actions/nested-elements/reorder using the ownerElementType, ownerId, ownerSiteId, attribute, elementIds, and offset parameters present in the read-only page source and rewrite the sort order of Matrix blocks or Addresses belonging to content they are explicitly denied save access to.",
"evidence": "osv:CVE-2026-92589",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-92589",
"aliases": [
"CVE-2026-92589",
"GHSA-6fp2-8j9w-7mj8"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/craftcms/cms",
"type": "GIT",
"events": [
{
"introduced": "f6a8fb685d44e387435825e3a96809eeda4973a6"
},
{
"fixed": "0b18123e8c3be1edcf6f785e9925e1b1007ce8c5"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "5.0.0"
},
{
"fixed": "5.10.13"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-92589.json"
}
}
],
"modified": "2026-10-28T02:30:49.631507810Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92589.json",
"https://github.com/craftcms/cms/security/advisories/GHSA-6fp2-8j9w-7mj8",
"https://nvd.nist.gov/vuln/detail/CVE-2026-92589",
"https://www.vulncheck.com/advisories/craft-cms-5.0.0-before-5.10.13-broken-access-control-via-nested-elements-reorder"
],
"provider_metadata": {
"cwe_ids": [
"CWE-862"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92589.json"
}
},
"related_cves": [
{
"value": "CVE-2026-92589",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 517906,
"published_at": "2026-09-16T21:46:55.216+00:00"
}