Medium severity · published Mar 25, 2024
CVE-2024-29041
Express.js minimalist web framework for node
6.1
CVSS
0.8%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
Low
Integrity
Low
Availability
None
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)0.8% · higher than 56% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
EX
Express · Openjsf
before 4.19.2; 5.0.0; 5.0.0; 5.0.0; 5.0.0; 5.0.0; +5 more · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2024-29041
CVE.org
https://www.cve.org/CVERecord?id=CVE-2024-29041
Technical Description
https://expressjs.com/en/4x/api.html#res.location
Patch
https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd
Patch
https://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94
Issue Tracking
https://github.com/expressjs/express/pull/5539
Patch
https://github.com/expressjs/express/security/advisories/GHSA-rv95-896h-c2vc
Issue Tracking
https://github.com/koajs/koa/issues/1800
More from Express
7.5
CVE-2022-24999
qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an __ proto__ key can be…
6.1
CVE-2014-6393
The Express web framework before 3.11 and 4.x before 4.5 for Node.js does not provide a charset field in HTTP Content-Type headers in 400 level responses, which might allow remote…
5.3
CVE-2024-10491
A vulnerability has been identified in the Express response.links function, allowing for arbitrary resource injection in the Link header when unsanitized data is used
4.7
CVE-2024-43796
express vulnerable to XSS via response.redirect()
