Strapi Unauthenticated Account Takeover via Relational Filtering Vulnerability (CVE-2026-27886)
Strapi versions prior to 5.37.0 are vulnerable to an unauthenticated boolean-oracle attack against private fields on the joined `admin_users` table, including the `resetPasswordToken` field, via the 'where' query parameter on publicly accessible content-types; extracting an admin reset token via this oracle makes full administrative account takeover possible without authentication.
Strapi versions prior to 5.37.0 contain a critical vulnerability (CVE-2026-27886) that allows unauthenticated attackers to perform account takeover. The vulnerability stems from insufficient sanitization of query parameters when filtering content via relational fields. An attacker can exploit this flaw by crafting malicious where query parameters targeting publicly accessible content types with an updatedBy (or other admin-relation) field. This allows for a boolean-oracle attack against private fields in the joined admin_users table, specifically targeting the resetPasswordToken field. Successful extraction of an admin reset token enables complete administrative account takeover without requiring any prior authentication. The vulnerability affects @strapi/strapi versions <=5.36.1.
Attack Chain
- An unauthenticated attacker identifies a publicly accessible content-type endpoint in the Strapi application that includes a relational field to the
admin_userstable (e.g.,updatedBy,createdBy,publishedBy). - The attacker crafts a malicious HTTP GET request to the identified endpoint, using the
wherequery parameter to filter results based on a private field in theadmin_userstable, such asresetPasswordToken. - The attacker injects special characters and operators (e.g.,
$startsWith,$contains,$eq) into thewherequery parameter to construct a boolean-oracle attack. Example:where[updatedBy][resetPasswordToken][$startsWith]=a. - The vulnerable Strapi application executes a
LEFT JOINquery against theadmin_userstable without proper sanitization, allowing the attacker to infer information about theresetPasswordTokenfield based on the response. - The attacker iterates through a hex alphabet (
0-9,a-f) to progressively reveal theresetPasswordTokenvalue one character at a time by observing subtle differences in the response. - Once the attacker has successfully extracted the complete
resetPasswordToken, they make aPOST /admin/reset-passwordrequest with the stolen token. - The Strapi application validates the stolen reset token, and allows the attacker to set a new password for the targeted administrator account.
- The attacker successfully logs in to the Strapi admin panel using the newly set password, achieving full administrative account takeover.
Impact
Successful exploitation of CVE-2026-27886 allows unauthenticated attackers to gain complete control over the Strapi application. This can lead to data breaches, unauthorized modifications, and denial of service. The affected versions are @strapi/strapi <=5.36.1. The impact is considered critical due to the ease of exploitation and the high level of access gained.
Recommendation
- Immediately upgrade your Strapi installation to version >=5.37.0 to patch CVE-2026-27886, as recommended in the advisory.
- Deploy the Sigma rule “Detect Strapi resetPasswordToken Oracle Attempts (CVE-2026-27886)” to detect potential exploitation attempts by monitoring for suspicious
wherequery parameters in web server access logs. - Deploy the Sigma rule “Detect Strapi Admin Password Reset After Potential Exploitation (CVE-2026-27886)” to detect potential exploitation attempts by monitoring for admin password resets following suspicious activity.
- Monitor server access logs for query strings containing patterns matching
\?(.*&)?where\[(updatedBy|createdBy|publishedBy)\]\[(email|password|resetPasswordToken|confirmationToken|firstname|lastname|preferedLanguage)\]\[\$(startsWith|contains|eq|gt|lt|ge|le|in|notIn|notNull|null)\]=as described in the advisory.
Detection coverage 2
Detect Strapi resetPasswordToken Oracle Attempts (CVE-2026-27886)
highDetects CVE-2026-27886 exploitation — attempts to exploit the Strapi resetPasswordToken boolean oracle by monitoring for suspicious `where` query parameters in web server access logs.
Detect Strapi Admin Password Reset After Potential Exploitation (CVE-2026-27886)
highDetects CVE-2026-27886 exploitation — monitors for admin password resets immediately following suspicious requests with `where[updatedBy]` query parameters.
Detection queries are available on the platform. Get full rules →