chore(deps): update dependency undici to v5 [security] #144
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^4.12.1
->^5.0.0
^4.12.1
->^5.0.0
Warning
Some dependencies could not be looked up. Check the warning logs for more information.
GitHub Vulnerability Alerts
CVE-2022-32210
Description
Undici.ProxyAgent
never verifies the remote server's certificate, and always exposes all request & response data to the proxy. This unexpectedly means that proxies can MitM all HTTPS traffic, and if the proxy's URL is HTTP then it also means that nominally HTTPS requests are actually sent via plain-text HTTP between Undici and the proxy server.Impact
This affects all use of HTTPS via HTTP proxy using
Undici.ProxyAgent
with Undici or Node's globalfetch
. In this case, it removes all HTTPS security from all requests sent using Undici'sProxyAgent
, allowing trivial MitM attacks by anybody on the network path between the client and the target server (local network users, your ISP, the proxy, the target server's ISP, etc).This less seriously affects HTTPS via HTTPS proxies. When you send HTTPS via a proxy to a remote server, the proxy can freely view or modify all HTTPS traffic unexpectedly (but only the proxy).
Patches
This issue was patched in Undici v5.5.1.
Workarounds
At the time of writing, the only workaround is to not use
ProxyAgent
as a dispatcher for TLS Connections.CVE-2022-31150
Impact
It is possible to inject CRLF sequences into request headers in Undici.
The same applies to
path
andmethod
Patches
Update to v5.8.0
Workarounds
Sanitize all HTTP headers from untrusted sources to eliminate
\r\n
.References
https://hackerone.com/reports/409943
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12116
For more information
If you have any questions or comments about this advisory:
CVE-2022-31151
Impact
Authorization headers are already cleared on cross-origin redirect in
https://github.com/nodejs/undici/blob/main/lib/handler/redirect.js#L189, based on https://github.com/nodejs/undici/issues/872.
However, cookie headers which are sensitive headers and are official headers found in the spec, remain uncleared. There also has been active discussion of implementing a cookie store https://github.com/nodejs/undici/pull/1441, which suggests that there are active users using cookie headers in undici.
As such this may lead to accidental leakage of cookie to a 3rd-party site or a malicious attacker who can control the redirection target (ie. an open redirector) to leak the cookie to the 3rd party site.
Patches
This was patched in v5.8.0.
Workarounds
By default, this vulnerability is not exploitable.
Do not enable redirections, i.e.
maxRedirections: 0
(the default).References
https://hackerone.com/reports/1635514
https://curl.se/docs/CVE-2018-1000007.html
https://curl.se/docs/CVE-2022-27776.html
For more information
If you have any questions or comments about this advisory:
CVE-2022-35949
Impact
undici
is vulnerable to SSRF (Server-side Request Forgery) when an application takes in user input into thepath/pathname
option ofundici.request
.If a user specifies a URL such as
http://127.0.0.1
or//127.0.0.1
Instead of processing the request as
http://example.org//127.0.0.1
(orhttp://example.org/http://127.0.0.1
whenhttp://127.0.0.1 is used
), it actually processes the request ashttp://127.0.0.1/
and sends it tohttp://127.0.0.1
.If a developer passes in user input into
path
parameter ofundici.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.Patches
This issue was fixed in
undici@5.8.1
.Workarounds
The best workaround is to validate user input before passing it to the
undici.request
call.For more information
If you have any questions or comments about this advisory:
CVE-2022-35948
Impact
=< undici@5.8.0
users are vulnerable to CRLF Injection on headers when using unsanitized input as request headers, more specifically, inside thecontent-type
header.Example:
The above snippet will perform two requests in a single
request
API call:http://localhost:3000/
http://localhost:3000/foo2
Patches
This issue was patched in Undici v5.8.1
Workarounds
Sanitize input when sending content-type headers using user input.
For more information
If you have any questions or comments about this advisory:
CVE-2023-23936
Impact
undici library does not protect
host
HTTP header from CRLF injection vulnerabilities.Patches
This issue was patched in Undici v5.19.1.
Workarounds
Sanitize the
headers.host
string before passing to undici.References
Reported at https://hackerone.com/reports/1820955.
Credits
Thank you to Zhipeng Zhang (@timon8) for reporting this vulnerability.
CVE-2023-24807
Impact
The
Headers.set()
andHeaders.append()
methods are vulnerable to Regular Expression Denial of Service (ReDoS) attacks when untrusted values are passed into the functions. This is due to the inefficient regular expression used to normalize the values in theheaderValueNormalize()
utility function.Patches
This vulnerability was patched in v5.19.1.
Workarounds
There is no workaround. Please update to an unaffected version.
References
Credits
Carter Snook reported this vulnerability.
CVE-2023-45143
Impact
Undici clears Authorization headers on cross-origin redirects, but does not clear
Cookie
headers. By design,cookie
headers are forbidden request headers, disallowing them to be set inRequestInit.headers
in browser environments. Since Undici handles headers more liberally than the specification, there was a disconnect from the assumptions the spec made, and Undici's implementation of fetch.As such this may lead to accidental leakage of cookie to a 3rd-party site or a malicious attacker who can control the redirection target (ie. an open redirector) to leak the cookie to the 3rd party site.
Patches
This was patched in e041de359221ebeae04c469e8aff4145764e6d76, which is included in version 5.26.2.
CVE-2024-24758
Impact
Undici already cleared Authorization headers on cross-origin redirects, but did not clear
Proxy-Authorization
headers.Patches
This is patched in v5.28.3 and v6.6.1
Workarounds
There are no known workarounds.
References
CVE-2024-30260
Impact
Undici cleared Authorization and Proxy-Authorization headers for
fetch()
, but did not clear them forundici.request()
.Patches
This has been patched in nodejs/undici@6805746.
Fixes has been released in v5.28.4 and v6.11.1.
Workarounds
use
fetch()
or disablemaxRedirections
.References
Linzi Shang reported this.
CVE-2024-30261
Impact
If an attacker can alter the
integrity
option passed tofetch()
, they can letfetch()
accept requests as valid even if they have been tampered.Patches
Fixed in nodejs/undici@d542b8c.
Fixes has been released in v5.28.4 and v6.11.1.
Workarounds
Ensure that
integrity
cannot be tampered with.References
https://hackerone.com/reports/2377760
Release Notes
nodejs/undici (undici)
v5.19.1
Compare Source
This release is part of the Node.js security release train: https://nodejs.org/en/blog/vulnerability/february-2023-security-releases/
v5.19.0
Compare Source
What's Changed
New Contributors
Full Changelog: nodejs/undici@v5.18.0...v5.19.0
v5.18.0
Compare Source
What's Changed
Full Changelog: nodejs/undici@v5.17.1...v5.18.0
v5.17.1
Compare Source
What's Changed
Full Changelog: nodejs/undici@v5.17.0...v5.17.1
v5.17.0
Compare Source
What's Changed
New Contributors
Full Changelog: nodejs/undici@v5.16.0...v5.17.0
v5.16.0
Compare Source
What's Changed
New Contributors
Full Changelog: nodejs/undici@v5.15.2...v5.16.0
v5.15.2
Compare Source
v5.15.1
Compare Source
What's Changed
Full Changelog: nodejs/undici@v5.15.0...v5.15.1
v5.15.0
Compare Source
What's Changed
New Contributors
Full Changelog: nodejs/undici@v5.14.0...v5.15.0
v5.14.0
Compare Source
What's Changed
response-static-error.any.js
by @KhafraDev in https://github.com/nodejs/undici/pull/1789New Contributors
Full Changelog: nodejs/undici@v5.13.0...v5.14.0
v5.13.0
Compare Source
What's Changed
8.2 Set request’s referrer policy on redirect
by @metcoder95 in https://github.com/nodejs/undici/pull/1717argumentLengthCheck
guard by @KhafraDev in https://github.com/nodejs/undici/pull/1755New Contributors
Full Changelog: nodejs/undici@v5.12.0...v5.13.0
v5.12.0
Compare Source
This release includes significant improvements to fetch code coverage and spec compliance as well as a new option to limit response body size.
What's Changed
Request{Init}.duplex
and add WPTs by @KhafraDev in https://github.com/nodejs/undici/pull/1681response
WPTs by @KhafraDev in https://github.com/nodejs/undici/pull/1684type
more strict by @KhafraDev in https://github.com/nodejs/undici/pull/1703scheme-blob.sub.any.js
by @KhafraDev in https://github.com/nodejs/undici/pull/1707Response.json
by @KhafraDev in https://github.com/nodejs/undici/pull/1723New Contributors
Full Changelog: nodejs/undici@v5.11.0...v5.12.0
v5.11.0
Compare Source
What's Changed
FormData
/Blob
bodies by @mrbbot in https://github.com/nodejs/undici/pull/1643MockPoolInterceptOptions.method
is optional by @KhafraDev in https://github.com/nodejs/undici/pull/1648PoolOptions
by @silverwind in https://github.com/nodejs/undici/pull/1651META
tags by @KhafraDev in https://github.com/nodejs/undici/pull/1664determineRequestReferrer
by @metcoder95 in https://github.com/nodejs/undici/pull/1236New Contributors
Full Changelog: nodejs/undici@v5.10.0...v5.11.0
v5.10.0
Compare Source
What's Changed
ArrayBufferView
andArrayBuffer
as body by @LiviaMedeiros in https://github.com/nodejs/undici/pull/1584New Contributors
Full Changelog: nodejs/undici@v5.9.1...v5.10.0
v5.9.1
What's Changed
integrity
option to Fetch by @jelmervdl in https://github.com/nodejs/undici/pull/1596byteOffset
andbyteLength
by @mrbbot in https://github.com/nodejs/undici/pull/1601New Contributors
Full Changelog: nodejs/undici@v5.8.2...v5.9.1
v5.8.2
Compare Source
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.