high · CVSS v3 7.1 · CVSS v4 7.1
CVE-2026-125398
Instatic before 0.0.21 has an authorization bypass in handleRowAuthor that lets authenticated users read and reassign authors of system-tabl
Overview
Instatic before 0.0.21 has an authorization bypass in handleRowAuthor that lets authenticated users read and reassign authors of system-table rows. The flaw allows users with content.edit.any but not data.system.tables.read to access protected data via PATCH /admin/api/cms/data/rows/:id/author. This can expose sensitive system data and alter ownership.
Description
Instatic before 0.0.21 contains an authorization bypass vulnerability in handleRowAuthor that allows authenticated users to skip table-level access checks by loading rows with getDataRow() instead of loadRowForAccess(). Attackers holding content.edit.any but lacking data.system.tables.read can send PATCH requests to /admin/api/cms/data/rows/:id/author to read system-table rows and reassign their authors.
Impact
Confidentiality: unauthorized disclosure of system-table data. Integrity: attackers can reassign authors, potentially altering audit trails. Availability: not directly impacted. Defenders: administrators and security teams must verify access controls.
Remediation
Apply the official patch that updates Instatic to 0.0.21 or later. If patch unavailable, restrict content.edit.any permissions to users who also have data.system.tables.read, or block PATCH /admin/api/cms/data/rows/:id/author for non-admins. Monitor audit logs for unexpected author changes.
Risk context
Severity is high with CVSS 7.1. No EPSS data available. The vulnerability is exploitable by any authenticated user with content.edit.any, making it a moderate to high risk that should be addressed promptly.
Affected products
- Instatic CMS
Scores
- Severity
- high
- CVSS v2
- 7.5
- CVSS v3
- 7.1
- CVSS v4
- 7.1
- EPSS
- —