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
—

authorization-bypass cms instatic high-severity access-control data-exfiltration

← All CVEs