{"id":"CVE-2026-126204","summary":"express-rate-limit skipFailedRequests / skipSuccessfulRequests: with the default MemoryStore, a request from an earlier window is still un-counted from the current window","details":"express-rate-limit is a basic rate-limiting middleware for Express. From 8.6.0 until 8.7.2, the built-in MemoryStore returns a Client whose mutable resetTime object is retained by middleware using skipFailedRequests or skipSuccessfulRequests. When a later request resets the client window, MemoryStore.resetClient mutates that same Date, so an earlier request that finishes or disconnects after the reset can pass the stale-window guard and decrement the current window's count. A client able to keep requests in flight across the boundary can obtain a bounded extra burst of up to one additional configured limit in the new window; the behavior does not increase the sustained rate. Stores that return a fresh Date are not affected. This issue is fixed in version 8.7.2.","aliases":["GHSA-j3cq-92fq-qg5f"],"modified":"2026-11-14T10:31:01.256162988Z","published":"2026-11-12T18:47:40.963Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-682"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/126xxx/CVE-2026-126204.json"},"references":[{"type":"WEB","url":"https://github.com/express-rate-limit/express-rate-limit/releases/tag/v8.7.2"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/126xxx/CVE-2026-126204.json"},{"type":"ADVISORY","url":"https://github.com/express-rate-limit/express-rate-limit/security/advisories/GHSA-j3cq-92fq-qg5f"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126204"},{"type":"FIX","url":"https://github.com/express-rate-limit/express-rate-limit/commit/da5b115b97dd903076d37b19437fbd71445e150b"},{"type":"FIX","url":"https://github.com/express-rate-limit/express-rate-limit/pull/707"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/express-rate-limit/express-rate-limit","events":[{"introduced":"fffb3c4d6e614e79fcb5a6617c06cc57fd587ef0"},{"fixed":"3fa4577b3acbe4cc2732e19f14d81ccb963445d6"},{"fixed":"da5b115b97dd903076d37b19437fbd71445e150b"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"8.6.0"},{"fixed":"8.7.2"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"range":[{"fixed":"da5b115b97dd903076d37b19437fbd71445e150b"}],"source":"REFERENCES_COMMIT"},{"range":[{"fixed":"3fa4577b3acbe4cc2732e19f14d81ccb963445d6"}],"source":"REFERENCES_TAG","original_tag":"v8.7.2"}]}}],"versions":["v8.7.1","v8.7.0","v8.6.2","v8.6.1","v8.6.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-126204.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"}]}