Strapi is an open source headless content management system. In Strapi versions prior to 5.45.0, the rate-limit middleware in the users-permissions plugin derived its rate-limit key in part from ctx.request.body.email, including on routes whose body schema does not contain an email field (/auth/local, /auth/reset-password, /auth/change-password). An unauthenticated attacker could include an arbitrary email value in the request body to obtain a fresh rate-limit key per request, effectively bypassing per-IP throttling on those routes and enabling high-volume credential brute-force, password-reset code brute-force, and credential-stuffing attempts. The rate-limit key was constructed as ${userIdentifier}:${requestPath}:${ctx.request.ip}, where userIdentifier = ctx.request.body.email. On routes that legitimately use email as their identifier (e.g. /auth/forgot-password, /auth/local/register), this scoping is correct. On routes that use a different identifier (identifier for login, code for password reset, currentPassword for password change), the email field was not part of the route contract, but the middleware still incorporated it into the key, allowing a caller to rotate the value and obtain a unique key on every request. The patch in version 5.45.0 maintains an allow-list of routes that legitimately key on the email field and excludes that key component on every other route the middleware is mounted on. OAuth callback paths (/connect/*) are treated identifier-less. On routes outside the allow-list, the middleware now falls back to a fixed identifier-less key, ensuring per-IP throttling remains effective even when the request body is attacker-controlled.
CVE-2025-64526
This medium-severity CVE scores 5.3 under NVD CVSS v3. EPSS exploit probability: 0.5%, top 61% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).
- Lower severity and no public exploit yet
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 5.3
- EG Score
- 5.3(medium)
- EPSS
- 38.9%
- KEV
- Not listed
Published
May 14, 2026
Last Modified
May 16, 2026
Advisory Details (4)
Auto-updated May 16, 2026Rate limit bypass on auth routes due to invalid prefix checking · Advisory · strapi/strapi · GitHub
https://github.com/strapi/strapi/security/advisories/GHSA-7mqx-wwh4-f9fwRelease v5.45.0 · strapi/strapi · GitHub
https://github.com/strapi/strapi/releases/tag/v5.45.0fix: dynamically update rate limit prefix key based on route by derrickmehaffy · Pull Request #24818 · strapi/strapi · GitHub
https://github.com/strapi/strapi/pull/24818fix: dynamically update rate limit prefix key based on route (#24818) · strapi/strapi@5e0d243 · GitHub
https://github.com/strapi/strapi/commit/5e0d243cba9830e6f791de6a94798bcde51468dbVendor Advisories for CVE-2025-64526(1)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
Affected Packages
(1 across 1 ecosystem)
npm(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| @strapi/plugin-users-permissions | — | 5.45.0 | — |
Weakness Classification(1)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 9× in last 7d / 54× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
Showing the most recent 100 of 110 total refreshes for this CVE.
- 2026-07-12 05:46 UTCEPSS rescore
- 2026-07-11 08:27 UTCEPSS rescore
- 2026-07-09 19:09 UTCEPSS rescore
- 2026-07-08 15:15 UTCEPSS rescore
- 2026-07-07 13:46 UTCEPSS rescore
- 2026-07-06 16:27 UTCEPSS rescore
- 2026-07-06 16:27 UTCEPSS rescore
- 2026-07-06 02:23 UTCEPSS rescore
- 2026-07-06 02:23 UTCEPSS rescore
- 2026-07-05 02:30 UTCEPSS rescore
- 2026-07-05 02:30 UTCEPSS rescore
- 2026-07-04 06:31 UTCEPSS rescore
- 2026-07-04 06:30 UTCEPSS rescore
- 2026-07-01 15:06 UTCEPSS rescore
- 2026-07-01 15:06 UTCEPSS rescore
- 2026-06-30 23:22 UTCEPSS rescore
- 2026-06-29 21:50 UTCEG score recompute
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-29 14:06 UTCEPSS rescore
- 2026-06-28 14:07 UTCEPSS rescore
- 2026-06-28 14:07 UTCEPSS rescore
- 2026-06-28 04:56 UTCEPSS rescore
- 2026-06-28 04:55 UTCEPSS rescore
- 2026-06-27 22:38 UTCEG score recompute
- 2026-06-27 03:08 UTCEPSS rescore
Show 75 moreShow fewer
- 2026-06-26 20:34 UTCEG score recompute
- 2026-06-25 19:13 UTCEG score recompute
- 2026-06-25 13:49 UTCEPSS rescore
- 2026-06-24 14:04 UTCEPSS rescore
- 2026-06-24 14:04 UTCEPSS rescore
- 2026-06-23 21:32 UTCEPSS rescore
- 2026-06-23 21:32 UTCEPSS rescore
- 2026-06-22 14:25 UTCEPSS rescore
- 2026-06-21 14:56 UTCEPSS rescore
- 2026-06-21 14:56 UTCEPSS rescore
- 2026-06-21 01:59 UTCEPSS rescore
- 2026-06-21 01:59 UTCEPSS rescore
- 2026-06-19 19:25 UTCEPSS rescore
- 2026-06-19 19:25 UTCEPSS rescore
- 2026-06-18 17:52 UTCEPSS rescore
- 2026-06-18 17:52 UTCEPSS rescore
- 2026-06-17 17:52 UTCEPSS rescore
- 2026-06-17 13:52 UTCEG score recompute
- 2026-06-16 17:52 UTCEPSS rescore
- 2026-06-16 05:54 UTCEG score recompute
- 2026-06-15 17:48 UTCEPSS rescore
- 2026-06-15 17:48 UTCEPSS rescore
- 2026-06-15 04:34 UTCEG score recompute
- 2026-06-14 23:18 UTCEPSS rescore
- 2026-06-14 03:13 UTCEG score recompute
- 2026-06-13 23:00 UTCEPSS rescore
- 2026-06-13 23:00 UTCEPSS rescore
- 2026-06-13 01:45 UTCEG score recompute
- 2026-06-12 23:11 UTCEPSS rescore
- 2026-06-12 00:24 UTCEG score recompute
- 2026-06-11 14:00 UTCEPSS rescore
- 2026-06-10 23:03 UTCEG score recompute
- 2026-06-10 22:18 UTCEPSS rescore
- 2026-06-10 22:18 UTCEPSS rescore
- 2026-06-10 13:22 UTCEPSS rescore
- 2026-06-09 21:43 UTCEG score recompute
- 2026-06-08 19:52 UTCEG score recompute
- 2026-06-08 14:17 UTCEPSS rescore
- 2026-06-08 14:16 UTCEPSS rescore
- 2026-06-07 15:24 UTCEPSS rescore
- 2026-06-07 15:24 UTCEPSS rescore
- 2026-06-07 13:50 UTCEG score recompute
- 2026-06-06 12:30 UTCEG score recompute
- 2026-06-05 22:46 UTCEPSS rescore
- 2026-06-05 22:46 UTCEPSS rescore
- 2026-06-05 11:09 UTCEG score recompute
- 2026-06-04 13:12 UTCEPSS rescore
- 2026-06-04 13:12 UTCEPSS rescore
- 2026-06-04 09:49 UTCEG score recompute
- 2026-06-03 08:28 UTCEG score recompute
- 2026-06-02 20:13 UTCEPSS rescore
- 2026-06-02 20:12 UTCEPSS rescore
- 2026-06-02 07:07 UTCEG score recompute
- 2026-06-01 13:51 UTCEPSS rescore
- 2026-06-01 13:51 UTCEPSS rescore
- 2026-06-01 05:46 UTCEG score recompute
- 2026-05-31 22:30 UTCEPSS rescore
- 2026-05-31 22:30 UTCEPSS rescore
- 2026-05-29 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-28 13:44 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-27 13:40 UTCEPSS rescore
- 2026-05-26 13:44 UTCEPSS rescore
- 2026-05-26 13:44 UTCEPSS rescore
- 2026-05-26 13:43 UTCEPSS rescore
- 2026-05-26 07:18 UTCEPSS rescore
- 2026-05-26 07:18 UTCEPSS rescore
- 2026-05-26 07:18 UTCEPSS rescore
- 2026-05-23 00:07 UTCEG score recompute
- 2026-05-22 21:16 UTCEPSS rescore
- 2026-05-22 21:16 UTCEPSS rescore
Related CVEs(same CWE)
Same CWE
10 shownCWE-307
Frequently asked(5)
What is CVE-2025-64526?
When was CVE-2025-64526 disclosed?
Is CVE-2025-64526 actively exploited?
What is the CVSS score of CVE-2025-64526?
How do I remediate CVE-2025-64526?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2025-64526
Is Your Infrastructure Affected by CVE-2025-64526?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.