Impact
Strapi’s query processor failed to sanitize relational filter parameters, allowing an attacker to forge a request to a public Content API endpoint containing a "where" clause that traverses a relationship to an admin table. By crafting boolean operators on hidden fields such as "resetPasswordToken", the attacker can reveal whether a particular token value exists. This Boolean oracle can be exploited to extract an admin reset token, which in turn enables the attacker to perform a full administrative account takeover without any credentials. The flaw is a classic example of information exposure (CWE‑200) and path traversal into restricted relational data (CWE‑22, CWE‑943).
Affected Systems
The vulnerability exists in Strapi versions from 4.0.0 up to, but not including, 5.37.0. Any installation of these releases that exposes a public content type with an "updatedBy" or similar admin-relation field is jeopardised.
Risk and Exploitability
The CVSS score is 9.2, indicating critical severity. While the EPSS score is not available, the absence of authentication on the affected endpoints makes the attack vector trivial for an attacker who can reach the public API. The flaw is not currently listed in CISA KEV, but its exploitation would have severe consequences. Attackers can trigger the Boolean oracle by sending simple GET requests and interpreting response counts, making the vulnerability highly exploitable in practice.
OpenCVE Enrichment
Github GHSA