CVE-2022-35949
Description
undici is an HTTP/1.1 client, written from scratch for Node.js.`undici` is vulnerable to SSRF (Server-side Request Forgery) when an application takes in **user input** into the `path/pathname` option of `undici.request`. If a user specifies a URL such as `http://127.0.0.1` or `//127.0.0.1` ```js const undici = require("undici") undici.request({origin: "http://example.com", pathname: "//127.0.0.1"}) ``` Instead of processing the request as `http://example.org//127.0.0.1` (or `http://example.org/http://127.0.0.1` when `http://127.0.0.1 is used`), it actually processes the request as `http://127.0.0.1/` and sends it to `http://127.0.0.1`. If a developer passes in user input into `path` parameter of `undici.request`, it can result in an _SSRF_ as they will assume that the hostname cannot change, when in actual fact it can change because the specified path parameter is combined with the base URL. This issue was fixed in `undici@5.8.1`. The best workaround is to validate user input before passing it to the `undici.request` call.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
No mitigations published for this CVE yet.
The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ if you've already worked around this in production โ publish your fix to the community-verified tier.
โ Propose a mitigation on Community โ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here withsource_tier=community-verified.
OS impact
| OS | Version | Status | Fixed in |
|---|---|---|---|
| sles | affected | | |
| debian | bookworm | fixed | 5.8.2+dfsg1+~cs18.9.18.1-1 |
| debian | forky | fixed | 5.8.2+dfsg1+~cs18.9.18.1-1 |
| debian | sid | fixed | 5.8.2+dfsg1+~cs18.9.18.1-1 |
| debian | trixie | fixed | 5.8.2+dfsg1+~cs18.9.18.1-1 |
Package impact
| Ecosystem | Package | Vulnerable | Fixed |
|---|---|---|---|
| npm | undici | <5.8.2 | 5.8.2 |
References
- https://www.suse.com/security/cve/CVE-2022-35949.html
- https://github.com/nodejs/undici/security/advisories/GHSA-8qr4-xgw6-wmr3
- https://nvd.nist.gov/vuln/detail/CVE-2022-35949
- https://github.com/nodejs/undici/commit/124f7ebf705366b2e1844dff721928d270f87895
- https://github.com/nodejs/undici
- https://github.com/nodejs/undici/releases/tag/v5.8.2
- https://security-tracker.debian.org/tracker/CVE-2022-35949
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.