Skip to content
Heist/ feed
Back to feed
Medium

Craft CMS 5.0.0 before 5.10.13 Broken Access Control via nested-elements/reorder

Type: advisorySources: OSV

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 source

Published 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"
}