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

This post offers a brief summary of CVE-2024-56143, a high-severity vulnerability in Strapi versions 5.0.0 through 5.5.1. The flaw allows attackers to access private fields, including admin credentials, by abusing the document service lookup operator. Patch and affected version details are included.
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 extract admin credentials and reset tokens from Strapi deployments by abusing a flaw in the document service lookup operator. This vulnerability impacts organizations running Strapi 5.0.0 through 5.5.1, exposing sensitive data that should remain inaccessible via API queries.

Strapi is a widely used open source headless content management system that powers thousands of web applications and APIs globally. Its flexibility and extensibility have made it a popular choice for developers and enterprises seeking a customizable CMS solution. With a large install base and active community, vulnerabilities in Strapi have broad real-world impact, especially for organizations relying on its API-driven architecture.

Technical Information

CVE-2024-56143 is rooted in Strapi's document service, specifically the lookup operator introduced in version 5. This operator enables flexible querying of content types, but in versions 5.0.0 through 5.5.1, it does not properly sanitize query parameters referencing private fields. Private fields in Strapi are intended to store sensitive data such as password hashes and reset tokens, and should never be accessible through public API queries.

The vulnerability occurs because the lookup operator's parameter handling fails to validate whether a queried field is marked as private in the content type schema. When an attacker crafts a query that includes a private field name (for example, password or resetPasswordToken), the system does not block the request. As a result, the API response can include values from these sensitive fields, violating data confidentiality.

This issue is classified as CWE-639 (Authorization Bypass Through User-Controlled Key), as the system trusts user-supplied query parameters to determine which fields to access, without enforcing proper authorization checks. The root cause is insufficient validation logic in the lookup operator's processing of query parameters.

The vulnerability was addressed in Strapi version 5.5.2, where the sanitization logic was updated to ensure that any reference to private fields in query parameters is detected and rejected before query execution.

Affected Systems and Versions

  • Strapi versions 5.0.0 through 5.5.1 are affected
  • The vulnerability specifically impacts 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 previously experienced similar vulnerabilities involving private field exposure and authorization bypass. Notably:

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

The vendor typically responds promptly to security disclosures and maintains a public security advisory process. However, the recurrence of private field exposure issues indicates ongoing challenges with query parameter validation and sanitization in the codebase.

References

Detect & fix
what others miss