{"id":"CVE-2024-29041","aliases":["GHSA-rv95-896h-c2vc"],"url":"https://o3.security/vulnerability/CVE-2024-29041","summary":"Express.js Open Redirect in malformed URLs","details":"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.","published":"2024-03-25T20:20:06.205Z","modified":"2026-07-15T01:49:20.666358627Z","cvss":{"score":6.1,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"express","fixedVersion":"4.19.2"},{"ecosystem":"npm","name":"express","fixedVersion":"5.0.0-beta.3"}],"fix":{"url":"https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd","label":"expressjs/express@0867302"},"references":[{"type":"WEB","url":"https://expressjs.com/en/4x/api.html#res.location"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/29xxx/CVE-2024-29041.json"},{"type":"ADVISORY","url":"https://github.com/expressjs/express/security/advisories/GHSA-rv95-896h-c2vc"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-29041"},{"type":"REPORT","url":"https://github.com/koajs/koa/issues/1800"},{"type":"FIX","url":"https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd"},{"type":"FIX","url":"https://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94"},{"type":"FIX","url":"https://github.com/expressjs/express/pull/5539"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-07-15T01:49:20.666358627Z"}}