Automated Threat Modeling

Strapi CVE-2024-56143: Brief Summary of Private Field Exposure via Document Service Lookup

A brief summary of CVE-2024-56143, a high-severity vulnerability in Strapi versions 5.0.0 through 5.5.1. Attackers can abuse the document service lookup operator to read private fields, including admin credentials. The post includes patch and affected version details.

CVE Analysis

7 min read

ZeroPath CVE Analysis
ZeroPath CVE Analysis

2025-10-16

Strapi CVE-2024-56143: Brief Summary of Private Field Exposure via Document Service Lookup
Experimental AI-Generated Content

This CVE analysis is an experimental publication that is completely AI-generated. The content may contain errors or inaccuracies and is subject to change as more information becomes available. We are continuously refining our process.

If you have feedback, questions, or notice any errors, please reach out to us.

[email protected]

Introduction

Attackers can pull admin credentials and reset tokens out of Strapi deployments by abusing a flaw in the document service lookup operator. The vulnerability affects organizations running Strapi 5.0.0 through 5.5.1 and exposes sensitive data that API queries should never be able to reach.

Strapi is a widely used open-source headless content management system that powers thousands of web applications and APIs around the world. Developers and enterprises that want a customizable CMS often pick it because it is flexible and easy to extend. With an install base that large and a community that active, a Strapi vulnerability has broad real-world impact, especially for organizations that rely on its API-driven architecture.

Technical information

CVE-2024-56143 sits in Strapi's document service, in the lookup operator introduced in version 5. The operator allows flexible queries against content types, but in versions 5.0.0 through 5.5.1 it does not properly sanitize query parameters that reference private fields. Strapi uses private fields to hold sensitive data such as password hashes and reset tokens, and public API queries should never be able to read them.

The lookup operator's parameter handling does not check whether a queried field is marked as private in the content type schema. If an attacker writes a query that names a private field (for example, password or resetPasswordToken), the system does not block the request. The API response can then include the values of those fields, which breaks data confidentiality.

The issue is classified as CWE-639 (Authorization Bypass Through User-Controlled Key) because the system lets user-supplied query parameters decide which fields it accesses and does not enforce proper authorization checks on them. The root cause is insufficient validation in how the lookup operator processes query parameters.

Strapi 5.5.2 fixes the vulnerability. Its updated sanitization logic detects any reference to a private field in query parameters and rejects it before the query runs.

Affected systems and versions

  • Strapi versions 5.0.0 through 5.5.1 are affected
  • The vulnerable component is the document service lookup operator
  • Only systems running these versions are vulnerable. Version 5.5.2 and later are not affected

Vendor security history

Strapi has had similar vulnerabilities involving private field exposure and authorization bypass before:

  • CVE-2023-22894: Allowed filtering on private fields, exposing sensitive user data
  • CVE-2023-34235: Bypassed the CVE-2023-22894 fix through SQL table alias manipulation

The vendor usually responds promptly to security disclosures and runs a public security advisory process. Even so, private field exposure keeps coming back, which points to ongoing trouble with query parameter validation and sanitization in the codebase.

References

Detect & fix
what others miss

Works with
  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps Services
  • Gerrit
  • CVS
  • Jira
  • Linear
  • Slack
  • Security Compass
Explore integrations
Security magnifying glass visualization