Despite headlines circulating about a “Strapi 6.x” security patch, there is no Strapi 6.x release — and no patch for one. Strapi’s current major version is v5, with v4 maintained as an LTS line. The real security event behind the chatter is significant, though: Strapi disclosed five vulnerabilities — CVE-2025-64526, CVE-2026-22599, CVE-2026-22706, CVE-2026-22707, and CVE-2026-27886 — all affecting v5 and v4 LTS, two of them rated critical. If you saw a “6.x” headline, treat it as inaccurate framing of this genuine disclosure.
The stakes are real even if the version number isn’t. The most severe issue, CVE-2026-27886 (CVSS 9.2), allowed an unauthenticated attacker to leak private fields from the `admin_users` table — including password reset tokens — through nothing more than a crafted `where` query parameter on a public content-type. In practical terms, a marketing site running an unpatched Strapi backend could have its admin account taken over by someone who never logged in. Teams should upgrade to v5.33.2 or later (4.26.1 for v4 LTS), and to 5.37.0+ to close the relational-filtering leak specifically.
Table of Contents
- Is There Really a Critical Strapi Security Patch for 6.x Versions?
- The Critical SQL Injection in the Content-Type Builder (CVE-2026-22599)
- The Unauthenticated Admin Takeover Path (CVE-2026-27886)
- How to Patch: Version Targets and Upgrade Tradeoffs
- Common Pitfalls When Responding to This Disclosure
- What This Means for Headless CMS Security Generally
- The Road Ahead for Strapi Users
- Conclusion
Is There Really a Critical Strapi Security Patch for 6.x Versions?
No. strapi has never shipped a 6.x version. As of May 2026, the project’s own GitHub security policy states that only v5.x.x stable releases are supported, with v4 LTS receiving backported fixes and anything older used “at your own risk.” Any article or alert referencing a “critical flaw affecting 6.x versions” is either confusing version numbers or fabricating a release that does not exist. This kind of versioning confusion is common in security news cycles — similar mix-ups have plagued Drupal and Magento advisories over the years, where readers patched the wrong branch or dismissed real advisories as irrelevant.
What is real is Strapi’s official disclosure, published on the Strapi blog, covering five CVEs patched across v5 and v4 LTS. Two are critical: a CVSS 9.3 SQL injection in the Content-Type Builder and a CVSS 9.2 unauthenticated data leak via relational filtering. The remaining issues include a session revocation gap on password reset and a MIME validation bypass in the Upload plugin. The lesson for site owners: always verify version claims against the vendor’s own advisory before acting. Patching against a phantom version wastes time; worse, dismissing the story as fake might leave a genuinely vulnerable v5 or v4 instance exposed.
The Critical SQL Injection in the Content-Type Builder (CVE-2026-22599)
CVE-2026-22599 carries a CVSS score of 9.3 and affects @strapi/content-type-builder at or below 5.33.1 on the v5 line, and @strapi/plugin-content-type-builder at or below 4.26.0 on v4. The flaw is a textbook injection: when an admin defines a field’s default value, the `column.defaultTo` attribute is passed unsanitized into Knex’s `db.connection.raw()` call. Whatever string lands there becomes part of a raw SQL statement executed against the database, as documented by Endor Labs and confirmed in Strapi’s disclosure. The mitigating factor is that exploitation requires an authenticated admin — this is not something a drive-by attacker can trigger.
But that limitation deserves a warning rather than relief. Many agencies and content teams hand out admin or near-admin access liberally, and Strapi installations frequently have multiple admin users created during onboarding and never audited afterward. A compromised or malicious admin account could use this flaw to read, modify, or destroy data far beyond what the CMS interface permits — including dropping tables or exfiltrating data from databases shared with other applications. If your Strapi database user has broad privileges on a shared database server, the blast radius extends past the CMS itself. That is a configuration problem worth fixing alongside the upgrade.
The Unauthenticated Admin Takeover Path (CVE-2026-27886)
The second critical flaw, CVE-2026-27886 (CVSS 9.2, tracked as GHSA-rjg2-95×7-8qmx), is arguably more dangerous in the wild because it requires no authentication at all. Strapi versions prior to 5.37.0 allowed attackers to abuse the `where` query parameter on public content-types to filter against private fields on joined tables — including the `admin_users` table. Here is a concrete attack scenario: an attacker triggers a password reset for an admin account, then runs a boolean-oracle attack — repeatedly querying a public endpoint with filters like “does the resetPasswordToken start with ‘a’?” — to reconstruct the token character by character.
With the recovered token, they reset the admin password and own the instance. No credentials, no phishing, no malware. Just HTTP requests against an API endpoint that was supposed to be public. This pattern — sensitive data leaking through over-permissive filtering on relations — has appeared in other API-first platforms too, and it is a strong argument for treating “public read access” as a security boundary that needs the same scrutiny as authentication.
How to Patch: Version Targets and Upgrade Tradeoffs
The fixed versions are clear-cut: upgrade to 5.33.2 or later on v5, or 4.26.1 or later on v4 LTS, to address the SQL injection and related issues. Critically, the relational-filtering leak (CVE-2026-27886) is only fixed in 5.37.0 and later — so a v5 instance sitting at 5.34 is still exposed to the unauthenticated takeover path. The safest target for v5 users is simply the latest 5.x release. There is a tradeoff for teams still on v4.
Staying on the LTS line gets you 4.26.1’s fixes with minimal migration effort, but v4 receives backports on a best-effort basis while v5 is the actively supported branch. A v4-to-v5 migration involves real work — plugin compatibility checks, API changes, possible content schema adjustments — which is why many teams defer it. The middle path: apply 4.26.1 immediately as the emergency fix, then schedule the v5 migration as a planned project rather than letting the LTS line become a permanent home. While planning the upgrade, also patch the smaller issues in this disclosure: CVE-2026-22706, where a password reset fails to revoke existing refresh sessions (meaning a stolen session survives a password change), and CVE-2026-22707, a MIME validation bypass in the Upload plugin’s Content API.
Common Pitfalls When Responding to This Disclosure
The most common mistake teams will make is partial patching. Because the fixes landed across different versions — 5.33.2 for the injection, 5.37.0 for the filtering leak — an administrator who reads only the Endor Labs writeup might upgrade to 5.33.2 and believe the job is done, while the unauthenticated admin-takeover vector remains wide open. Always reconcile your installed version against every CVE in a multi-vulnerability disclosure, not just the one with the loudest headline. The second pitfall is ignoring post-compromise hygiene.
Because CVE-2026-27886 leaked `resetPasswordToken` values and CVE-2026-22706 left refresh sessions alive after password resets, patching alone does not evict an attacker who already got in. After upgrading, rotate admin passwords, invalidate active sessions, audit the admin user list for unfamiliar accounts, and review database logs for unusual queries against `admin_users`. Finally, a limitation worth stating plainly: if you are running a Strapi version older than v4 — v3 or earlier — none of these patches apply to you. Those branches are unsupported entirely, and your only real remediation is migration.
What This Means for Headless CMS Security Generally
Headless CMS platforms like Strapi expose their content through public APIs by design, which shifts the attack surface compared to traditional CMSs like WordPress or Drupal. The filtering vulnerability is instructive: a feature built for developer convenience — flexible query filters on relations — became an oracle for extracting secrets from adjacent tables.
WordPress had its own analogous lesson in 2017 when its REST API content injection flaw led to mass defacements within days of disclosure. For teams running any API-first backend, the takeaway is to audit what your public endpoints can actually reach. Test whether query parameters can filter, sort, or join against fields and tables you consider private — don’t assume the framework draws that boundary correctly.
The Road Ahead for Strapi Users
Strapi’s handling of this disclosure — coordinated CVEs, a public blog post, fixes backported to the LTS line — reflects a maturing security process, and the project’s clear support policy (only v5.x.x stable supported as of May 2026) gives teams a concrete planning signal. Expect the v4 LTS window to keep narrowing, making v5 migration less optional with each advisory.
For now, the priorities are simple: patch to the latest v5 release (or 4.26.1 minimum on v4), rotate credentials and sessions, and put Strapi advisories on your monitoring list. The next disclosure will come — the question is whether your upgrade path is short enough to respond within days rather than months.
Conclusion
There is no Strapi 6.x and no patch for it — the real story is Strapi’s disclosure of five vulnerabilities affecting v5 and v4 LTS, headlined by a CVSS 9.3 SQL injection in the Content-Type Builder (CVE-2026-22599) and a CVSS 9.2 unauthenticated data leak (CVE-2026-27886) that enabled full admin account takeover via leaked password reset tokens. Both are patched: 5.33.2+/4.26.1+ for the injection and related fixes, and 5.37.0+ for the filtering leak.




