Node Fetch did not honor the size option after following a redirect, which means that when a content size was over the limit, a FetchError would never get thrown and the process would end without failure.
For most people, this fix will have a little or no impact. However, if you are relying on node-fetch to gate files above a size, the impact could be significant, for example: If you don't double-check the size of the data after fetch() has completed, your JS thread could get tied up doing work on a large file (DoS) and/or cost you money in computing.
Patches
We released patched versions for both stable and beta channels:
For v2: 2.6.1
For v3: 3.0.0-beta.9
Workarounds
None, it is strongly recommended to update as soon as possible.
For more information
If you have any questions or comments about this advisory:
bitinn/node-fetch
### [`v2.6.1`](https://togithub.com/bitinn/node-fetch/releases/v2.6.1)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)
**This is an important security release. It is strongly recommended to update as soon as possible.**
See [CHANGELOG](https://togithub.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md#v261) for details.
### [`v2.6.0`](https://togithub.com/bitinn/node-fetch/releases/v2.6.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.5.0...v2.6.0)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.6.0/CHANGELOG.md#v260).
### [`v2.5.0`](https://togithub.com/bitinn/node-fetch/releases/v2.5.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.4.1...v2.5.0)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.5.0/CHANGELOG.md#v250).
### [`v2.4.1`](https://togithub.com/bitinn/node-fetch/releases/v2.4.1)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.4.0...v2.4.1)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.4.1/CHANGELOG.md#v241).
### [`v2.4.0`](https://togithub.com/bitinn/node-fetch/releases/v2.4.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.3.0...v2.4.0)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.4.0/CHANGELOG.md#v240).
### [`v2.3.0`](https://togithub.com/bitinn/node-fetch/releases/v2.3.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.2.1...v2.3.0)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.3.0/CHANGELOG.md#v230).
### [`v2.2.1`](https://togithub.com/bitinn/node-fetch/releases/v2.2.1)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.2.0...v2.2.1)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.2.1/CHANGELOG.md#v221).
### [`v2.2.0`](https://togithub.com/bitinn/node-fetch/compare/v2.1.2...v2.2.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.1.2...v2.2.0)
### [`v2.1.2`](https://togithub.com/bitinn/node-fetch/releases/v2.1.2)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.1.1...v2.1.2)
- Fix: allow `Body` methods to work on ArrayBuffer`-backed`Body\` objects
- Fix: reject promise returned by `Body` methods when the accumulated `Buffer` exceeds the maximum size
- Fix: support custom `Host` headers with any casing
- Fix: support importing `fetch()` from TypeScript in `browser.js`
- Fix: handle the redirect response body properly
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.1.2/CHANGELOG.md#v212).
### [`v2.1.1`](https://togithub.com/bitinn/node-fetch/releases/v2.1.1)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.1.0...v2.1.1)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.1.1/CHANGELOG.md#v211).
Fix packaging errors in version 2.1.0.
### [`v2.1.0`](https://togithub.com/bitinn/node-fetch/releases/v2.1.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.0.0...v2.1.0)
See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.1.0/CHANGELOG.md#v210):
- Enhance: allow using ArrayBuffer as the `body` of a `fetch()` or `Request`
- Fix: store HTTP headers of a `Headers` object internally with the given case, for compatibility with older servers that incorrectly treated header names in a case-sensitive manner
- Fix: silently ignore invalid HTTP headers
- Fix: handle HTTP redirect responses without a `Location` header just like non-redirect responses
- Fix: include bodies when following a redirection when appropriate
### [`v2.0.0`](https://togithub.com/bitinn/node-fetch/releases/v2.0.0)
[Compare Source](https://togithub.com/bitinn/node-fetch/compare/1.7.3...v2.0.0)
This is a major release. See [upgrade guide](https://togithub.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md) on how to upgrade from v1.x, and the [changelog](https://togithub.com/bitinn/node-fetch/blob/master/CHANGELOG.md) for all changes.
Renovate configuration
:date: Schedule: "" (UTC).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^1.7.1
->^2.0.0
GitHub Vulnerability Alerts
CVE-2020-15168
Impact
Node Fetch did not honor the
size
option after following a redirect, which means that when a content size was over the limit, aFetchError
would never get thrown and the process would end without failure.For most people, this fix will have a little or no impact. However, if you are relying on node-fetch to gate files above a size, the impact could be significant, for example: If you don't double-check the size of the data after
fetch()
has completed, your JS thread could get tied up doing work on a large file (DoS) and/or cost you money in computing.Patches
We released patched versions for both stable and beta channels:
v2
: 2.6.1v3
: 3.0.0-beta.9Workarounds
None, it is strongly recommended to update as soon as possible.
For more information
If you have any questions or comments about this advisory:
Release Notes
bitinn/node-fetch
### [`v2.6.1`](https://togithub.com/bitinn/node-fetch/releases/v2.6.1) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1) **This is an important security release. It is strongly recommended to update as soon as possible.** See [CHANGELOG](https://togithub.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md#v261) for details. ### [`v2.6.0`](https://togithub.com/bitinn/node-fetch/releases/v2.6.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.5.0...v2.6.0) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.6.0/CHANGELOG.md#v260). ### [`v2.5.0`](https://togithub.com/bitinn/node-fetch/releases/v2.5.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.4.1...v2.5.0) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.5.0/CHANGELOG.md#v250). ### [`v2.4.1`](https://togithub.com/bitinn/node-fetch/releases/v2.4.1) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.4.0...v2.4.1) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.4.1/CHANGELOG.md#v241). ### [`v2.4.0`](https://togithub.com/bitinn/node-fetch/releases/v2.4.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.3.0...v2.4.0) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.4.0/CHANGELOG.md#v240). ### [`v2.3.0`](https://togithub.com/bitinn/node-fetch/releases/v2.3.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.2.1...v2.3.0) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.3.0/CHANGELOG.md#v230). ### [`v2.2.1`](https://togithub.com/bitinn/node-fetch/releases/v2.2.1) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.2.0...v2.2.1) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.2.1/CHANGELOG.md#v221). ### [`v2.2.0`](https://togithub.com/bitinn/node-fetch/compare/v2.1.2...v2.2.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.1.2...v2.2.0) ### [`v2.1.2`](https://togithub.com/bitinn/node-fetch/releases/v2.1.2) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.1.1...v2.1.2) - Fix: allow `Body` methods to work on ArrayBuffer`-backed`Body\` objects - Fix: reject promise returned by `Body` methods when the accumulated `Buffer` exceeds the maximum size - Fix: support custom `Host` headers with any casing - Fix: support importing `fetch()` from TypeScript in `browser.js` - Fix: handle the redirect response body properly See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.1.2/CHANGELOG.md#v212). ### [`v2.1.1`](https://togithub.com/bitinn/node-fetch/releases/v2.1.1) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.1.0...v2.1.1) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.1.1/CHANGELOG.md#v211). Fix packaging errors in version 2.1.0. ### [`v2.1.0`](https://togithub.com/bitinn/node-fetch/releases/v2.1.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/v2.0.0...v2.1.0) See [CHANGELOG](https://togithub.com/bitinn/node-fetch/blob/v2.1.0/CHANGELOG.md#v210): - Enhance: allow using ArrayBuffer as the `body` of a `fetch()` or `Request` - Fix: store HTTP headers of a `Headers` object internally with the given case, for compatibility with older servers that incorrectly treated header names in a case-sensitive manner - Fix: silently ignore invalid HTTP headers - Fix: handle HTTP redirect responses without a `Location` header just like non-redirect responses - Fix: include bodies when following a redirection when appropriate ### [`v2.0.0`](https://togithub.com/bitinn/node-fetch/releases/v2.0.0) [Compare Source](https://togithub.com/bitinn/node-fetch/compare/1.7.3...v2.0.0) This is a major release. See [upgrade guide](https://togithub.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md) on how to upgrade from v1.x, and the [changelog](https://togithub.com/bitinn/node-fetch/blob/master/CHANGELOG.md) for all changes.Renovate configuration
:date: Schedule: "" (UTC).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.