/

CVE-2026-118170

Severity:

CRITICAL RISK

(9.1)

Broken Access Control (CWE-862) in Strapi Review Workflows

CVE-2026-118170

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-862

Impact:

Unauthorized document modification

Severity:

CRITICAL RISK

(9.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

The Strapi Review Workflows package may allow document updates without checking whether the caller has permission to update the underlying document. A caller who can reach the affected update flow may be able to make unauthorized changes, putting document integrity at risk.

The Strapi Review Workflows package may allow document updates without checking whether the caller has permission to update the underlying document. A caller who can reach the affected update flow may be able to make unauthorized changes, putting document integrity at risk.

Affected context

The issue occurs in update handling within the strapi/review-workflows package when the caller's rights for the underlying document are not verified. Risk depends on whether an attacker can access the relevant update flow and whether other application or deployment controls restrict that access.

The issue occurs in update handling within the strapi/review-workflows package when the caller's rights for the underlying document are not verified. Risk depends on whether an attacker can access the relevant update flow and whether other application or deployment controls restrict that access.

Exploit preconditions

  • Attack surface: The package's document update flow
  • Required access: Access to invoke the affected flow; the description does not establish whether authentication is required
  • Trigger point: An update request handled without checking the caller's update rights for the document
  • Why exploitation is possible: The authorization decision for the underlying document is missing or insufficient
  • Attack surface: The package's document update flow
  • Required access: Access to invoke the affected flow; the description does not establish whether authentication is required
  • Trigger point: An update request handled without checking the caller's update rights for the document
  • Why exploitation is possible: The authorization decision for the underlying document is missing or insufficient

Why this happens

The underlying bug is a failure to enforce authorization at the point where a document is updated. This maps to CWE-862: Missing Authorization: the application performs a protected action without verifying that the caller is permitted to perform it. Authentication alone does not establish permission to modify a particular document.

The underlying bug is a failure to enforce authorization at the point where a document is updated. This maps to CWE-862: Missing Authorization: the application performs a protected action without verifying that the caller is permitted to perform it. Authentication alone does not establish permission to modify a particular document.

Potential impact

  • Callers may modify documents they are not authorized to update
  • Unauthorized changes could affect workflow state or document content
  • The integrity of records managed through the affected flow could be reduced
  • Downstream processes may act on modified data
  • Callers may modify documents they are not authorized to update
  • Unauthorized changes could affect workflow state or document content
  • The integrity of records managed through the affected flow could be reduced
  • Downstream processes may act on modified data

General mitigation guidance

Defensive designs commonly enforce authorization for every sensitive operation, using the authenticated user's identity and the specific document being changed.

Common patterns include:

  • Check document-level update permissions at the operation boundary
  • Deny by default when authorization cannot be established
  • Keep authorization rules centralized and consistent across update paths
  • Limit user and service privileges to the documents and actions they require
  • Treat client-supplied identities, roles, and document references as untrusted until verified

Defensive designs commonly enforce authorization for every sensitive operation, using the authenticated user's identity and the specific document being changed.

Common patterns include:

  • Check document-level update permissions at the operation boundary
  • Deny by default when authorization cannot be established
  • Keep authorization rules centralized and consistent across update paths
  • Limit user and service privileges to the documents and actions they require
  • Treat client-supplied identities, roles, and document references as untrusted until verified

How teams detect issues like this

High-level review can focus on update handlers that change documents without an explicit permission check tied to both the caller and the target document.

  • Use static analysis or code review to trace update operations to authorization checks
  • Test access-control policies with users who have different document-level permissions
  • Review logs and audit records for updates made by callers lacking corresponding authorization
  • Enforce policies requiring authorization checks on sensitive document mutations

High-level review can focus on update handlers that change documents without an explicit permission check tied to both the caller and the target document.

  • Use static analysis or code review to trace update operations to authorization checks
  • Test access-control policies with users who have different document-level permissions
  • Review logs and audit records for updates made by callers lacking corresponding authorization
  • Enforce policies requiring authorization checks on sensitive document mutations

Sources

SourceLink
github.comgithub.com/strapi/strapi/releases#release-v5.51.0

Frequently asked

questions

The description does not specify the deployment or access path. Exploitability depends on whether an attacker can reach the affected update flow.

The available details do not establish whether authentication is required. Access to the update flow and the authorization controls around it determine the practical requirements.

Verify the caller's permission to update the specific document before applying any changes, and deny the operation when that permission cannot be confirmed.

Apply consistent, default-deny authorization checks at sensitive operation boundaries, and test them across users with different document-level permissions.

The description does not specify the deployment or access path. Exploitability depends on whether an attacker can reach the affected update flow.

The available details do not establish whether authentication is required. Access to the update flow and the authorization controls around it determine the practical requirements.

Verify the caller's permission to update the specific document before applying any changes, and deny the operation when that permission cannot be confirmed.

Apply consistent, default-deny authorization checks at sensitive operation boundaries, and test them across users with different document-level permissions.

Find out what's already
exploitable in your codebase.