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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| CoreBunch | Instatic | < 0.0.21 | 0.0.21 |
References
- GitHub Security Advisory (GHSA-m425-wmrc-4v4v) vendor-advisory
- https://github.com/CoreBunch/Instatic/commit/ff1e51eb59c860864fa24e8c3e2716b56314f3ad patch
- Instatic v0.0.21 Release Notes release-notes
- https://github.com/CoreBunch/Instatic/blob/v0.0.20/server/handlers/cms/data/rows.ts#L378-L398 technical-description
- VulnCheck Advisory: Instatic before 0.0.21 Authorization Bypass via Row Author Reassignment Endpoint third-party-advisory