Open Redirect in Expressjs Express

CVE-2024-29041

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.

Vulnerability class: Open Redirect

EPSS: 0.008 (52.4th percentile) — read the EPSS interpretation.

CVSS v3 metric

CVSS v3 base score 6.1 (Medium). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N.

Affected products

Weakness classification (CWE)

Public proof-of-concept exploits

References

Frequently asked questions

What is CVE-2024-29041?
CVE-2024-29041 is a medium-severity vulnerability in Expressjs Express, classified under URL Redirection to Untrusted Site (Open Redirect). CVSS score: 6.1/10. Published 2024-03-25.
How severe is CVE-2024-29041?
Medium severity. CVSS v3 base score is 6.1 out of 10.
Is CVE-2024-29041 known to be exploited?
9 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.