CVE-2024-29041
Severity CVSS v4.0:
Pending analysis
Type:
CWE-601
URL Redirection to Untrusted Site ('Open Redirect')
Publication date:
25/03/2024
Last modified:
18/12/2025
Description
Express.js minimalist web framework for node. Versions of Express.js prior to 4.19.0 and all pre-release alpha and beta versions of 5.0 are affected by an open redirect vulnerability using malformed URLs. When a user of Express performs a redirect using a user-provided URL Express performs an encode [using `encodeurl`](https://github.com/pillarjs/encodeurl) on the contents before passing it to the `location` header. This can cause malformed URLs to be evaluated in unexpected ways by common redirect allow list implementations in Express applications, leading to an Open Redirect via bypass of a properly implemented allow list. The main method impacted is `res.location()` but this is also called from within `res.redirect()`. The vulnerability is fixed in 4.19.2 and 5.0.0-beta.3.
Impact
Base Score 3.x
6.10
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:a:openjsf:express:*:*:*:*:*:node.js:*:* | 4.19.2 (excluding) | |
| cpe:2.3:a:openjsf:express:5.0.0:alpha1:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha2:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha3:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha4:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha5:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha6:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha7:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:alpha8:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:beta1:*:*:*:node.js:*:* | ||
| cpe:2.3:a:openjsf:express:5.0.0:beta2:*:*:*:node.js:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://expressjs.com/en/4x/api.html#res.location
- https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd
- https://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94
- https://github.com/expressjs/express/pull/5539
- https://github.com/expressjs/express/security/advisories/GHSA-rv95-896h-c2vc
- https://github.com/koajs/koa/issues/1800
- https://expressjs.com/en/4x/api.html#res.location
- https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd
- https://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94
- https://github.com/expressjs/express/pull/5539
- https://github.com/expressjs/express/security/advisories/GHSA-rv95-896h-c2vc
- https://github.com/koajs/koa/issues/1800



