qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an proto key can be used. In many typical Express use cases, an unauthenticated remote attacker can place the attack payload in the query string of the URL that is used to visit the application, such as a[proto]=b&a[proto]&a[length]=100000000. The fix was backported to qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4 (and therefore Express 4.17.3, which has "deps: qs@6.9.7" in its release description, is not vulnerable).
Release Notes
ljharb/qs
### [`v6.9.7`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#697)
[Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.6...v6.9.7)
- \[Fix] `parse`: ignore `__proto__` keys ([#428](https://togithub.com/ljharb/qs/issues/428))
- \[Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` ([#424](https://togithub.com/ljharb/qs/issues/424))
- \[Robustness] `stringify`: avoid relying on a global `undefined` ([#427](https://togithub.com/ljharb/qs/issues/427))
- \[readme] remove travis badge; add github actions/codecov badges; update URLs
- \[Docs] add note and links for coercing primitive values ([#408](https://togithub.com/ljharb/qs/issues/408))
- \[Tests] clean up stringify tests slightly
- \[meta] fix README.md ([#399](https://togithub.com/ljharb/qs/issues/399))
- Revert "\[meta] ignore eclint transitive audit warning"
- \[actions] backport actions from main
- \[Dev Deps] backport updates from main
### [`v6.9.6`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#696)
[Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.5...v6.9.6)
- \[Fix] restore `dist` dir; mistakenly removed in [`d4f6c32`](https://togithub.com/ljharb/qs/commit/d4f6c32)
### [`v6.9.5`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#695)
[Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.4...v6.9.5)
- \[Fix] `stringify`: do not encode parens for RFC1738
- \[Fix] `stringify`: fix arrayFormat comma with empty array/objects ([#350](https://togithub.com/ljharb/qs/issues/350))
- \[Refactor] `format`: remove `util.assign` call
- \[meta] add "Allow Edits" workflow; update rebase workflow
- \[actions] switch Automatic Rebase workflow to `pull_request_target` event
- \[Tests] `stringify`: add tests for [#378](https://togithub.com/ljharb/qs/issues/378)
- \[Tests] migrate tests to Github Actions
- \[Tests] run `nyc` on all tests; use `tape` runner
- \[Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `mkdirp`, `object-inspect`, `tape`; add `aud`
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
6.9.4
->6.9.7
GitHub Vulnerability Alerts
CVE-2022-24999
qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an proto key can be used. In many typical Express use cases, an unauthenticated remote attacker can place the attack payload in the query string of the URL that is used to visit the application, such as a[proto]=b&a[proto]&a[length]=100000000. The fix was backported to qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4 (and therefore Express 4.17.3, which has "deps: qs@6.9.7" in its release description, is not vulnerable).
Release Notes
ljharb/qs
### [`v6.9.7`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#697) [Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.6...v6.9.7) - \[Fix] `parse`: ignore `__proto__` keys ([#428](https://togithub.com/ljharb/qs/issues/428)) - \[Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` ([#424](https://togithub.com/ljharb/qs/issues/424)) - \[Robustness] `stringify`: avoid relying on a global `undefined` ([#427](https://togithub.com/ljharb/qs/issues/427)) - \[readme] remove travis badge; add github actions/codecov badges; update URLs - \[Docs] add note and links for coercing primitive values ([#408](https://togithub.com/ljharb/qs/issues/408)) - \[Tests] clean up stringify tests slightly - \[meta] fix README.md ([#399](https://togithub.com/ljharb/qs/issues/399)) - Revert "\[meta] ignore eclint transitive audit warning" - \[actions] backport actions from main - \[Dev Deps] backport updates from main ### [`v6.9.6`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#696) [Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.5...v6.9.6) - \[Fix] restore `dist` dir; mistakenly removed in [`d4f6c32`](https://togithub.com/ljharb/qs/commit/d4f6c32) ### [`v6.9.5`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#695) [Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.4...v6.9.5) - \[Fix] `stringify`: do not encode parens for RFC1738 - \[Fix] `stringify`: fix arrayFormat comma with empty array/objects ([#350](https://togithub.com/ljharb/qs/issues/350)) - \[Refactor] `format`: remove `util.assign` call - \[meta] add "Allow Edits" workflow; update rebase workflow - \[actions] switch Automatic Rebase workflow to `pull_request_target` event - \[Tests] `stringify`: add tests for [#378](https://togithub.com/ljharb/qs/issues/378) - \[Tests] migrate tests to Github Actions - \[Tests] run `nyc` on all tests; use `tape` runner - \[Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `mkdirp`, `object-inspect`, `tape`; add `aud`Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.