---
id: CVE-2026-81915
title: >-
  Concrete CMS below 9.5.3 does not perform an object-level authorization check
  when a Page Type was updated
summary: >-
  Concrete CMS below 9.5.3 does not perform an object-level authorization check
  when a Page Type was updated. The Types::submit() dashboard controller loaded
  and saved the Page Type identified by a user-supplied ptID without calling
  canEdi…
severity: medium
cvss: 5.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'
cwe:
  - CWE-639
  - CWE-862
vendor: concretecms
product: concrete_cms
affected:
  - concrete_cms < 9.5.3
patched:
  - concrete_cms 9.5.3
published: '2026-09-11'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T20:07:18.440'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-81915'
references:
  - url: >-
      https://documentation.concretecms.org/developers/introduction/version-history/953-release-notes
    label: ff5b8ace-8b95-4078-9743-eac1ca5451de
tags:
  - nvd
  - cve.org
epss: 0.00291
epssPercentile: 0.19284
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-14T12:49:10.453449Z'
scores:
  nvd: 5.3
  cna: 5.1
ingestedAt: '2026-09-14T15:23:07.428Z'
---

## Overview

Concrete CMS below 9.5.3 does not perform an object-level authorization check when a Page Type was updated. The Types::submit() dashboard controller loaded and saved the Page Type identified by a user-supplied ptID without calling canEditPageType(), so a signed-in dashboard user permitted to edit one Page Type could modify the configuration of Page Types outside their assigned authorization boundary. The update_page_type token was validated but is action- and user-scoped rather than object-scoped, so it did not constrain which Page Type could be targeted. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 5.1 with vector CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N. Thanks Andrew Gonzalez for reporting.

## Affected

- `concrete_cms < 9.5.3`

## Remediation

Upgrade past the affected range:

- `concrete_cms 9.5.3`
