qs before 6.10.3 allows attackers to cause a Node process hang because an __ proto__ key can be used. In many typical web framework 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.
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`
### [`v6.9.4`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#694)
[Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.3...v6.9.4)
- \[Fix] `stringify`: when `arrayFormat` is `comma`, respect `serializeDate` ([#364](https://togithub.com/ljharb/qs/issues/364))
- \[Refactor] `stringify`: reduce branching (part of [#350](https://togithub.com/ljharb/qs/issues/350))
- \[Refactor] move `maybeMap` to `utils`
- \[Dev Deps] update `browserify`, `tape`
### [`v6.9.3`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#693)
[Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.2...v6.9.3)
- \[Fix] proper comma parsing of URL-encoded commas ([#361](https://togithub.com/ljharb/qs/issues/361))
- \[Fix] parses comma delimited array while having percent-encoded comma treated as normal text ([#336](https://togithub.com/ljharb/qs/issues/336))
### [`v6.9.2`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#692)
[Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.1...v6.9.2)
- \[Fix] `parse`: Fix parsing array from object with `comma` true ([#359](https://togithub.com/ljharb/qs/issues/359))
- \[Fix] `parse`: throw a TypeError instead of an Error for bad charset ([#349](https://togithub.com/ljharb/qs/issues/349))
- \[meta] ignore eclint transitive audit warning
- \[meta] fix indentation in package.json
- \[meta] add tidelift marketing copy
- \[Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `has-symbols`, `tape`, `mkdirp`, `iconv-lite`
- \[actions] add automatic rebasing / merge commit blocking
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.1
->6.9.7
GitHub Vulnerability Alerts
CVE-2022-24999
qs before 6.10.3 allows attackers to cause a Node process hang because an
__ proto__
key can be used. In many typical web framework 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 asa[__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.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` ### [`v6.9.4`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#694) [Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.3...v6.9.4) - \[Fix] `stringify`: when `arrayFormat` is `comma`, respect `serializeDate` ([#364](https://togithub.com/ljharb/qs/issues/364)) - \[Refactor] `stringify`: reduce branching (part of [#350](https://togithub.com/ljharb/qs/issues/350)) - \[Refactor] move `maybeMap` to `utils` - \[Dev Deps] update `browserify`, `tape` ### [`v6.9.3`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#693) [Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.2...v6.9.3) - \[Fix] proper comma parsing of URL-encoded commas ([#361](https://togithub.com/ljharb/qs/issues/361)) - \[Fix] parses comma delimited array while having percent-encoded comma treated as normal text ([#336](https://togithub.com/ljharb/qs/issues/336)) ### [`v6.9.2`](https://togithub.com/ljharb/qs/blob/HEAD/CHANGELOG.md#692) [Compare Source](https://togithub.com/ljharb/qs/compare/v6.9.1...v6.9.2) - \[Fix] `parse`: Fix parsing array from object with `comma` true ([#359](https://togithub.com/ljharb/qs/issues/359)) - \[Fix] `parse`: throw a TypeError instead of an Error for bad charset ([#349](https://togithub.com/ljharb/qs/issues/349)) - \[meta] ignore eclint transitive audit warning - \[meta] fix indentation in package.json - \[meta] add tidelift marketing copy - \[Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `has-symbols`, `tape`, `mkdirp`, `iconv-lite` - \[actions] add automatic rebasing / merge commit blockingConfiguration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.