deps: body-parser@~1.20.4#7021
Merged
bjohansebas merged 1 commit intoFeb 8, 2026
Merged
Conversation
bjohansebas
approved these changes
Feb 7, 2026
mergify Bot
added a commit
to robfrank/linklift
that referenced
this pull request
Jun 4, 2026
[//]: # (dependabot-start)⚠️ \*\*Dependabot is rebasing this PR\*\*⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [qs](https://github.com/ljharb/qs) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `qs` from 6.14.2 to 6.15.2 Changelog *Sourced from [qs's changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md).* > **6.15.2** > ---------- > > * [Fix] `stringify`: skip null/undefined entries in `arrayFormat: 'comma'` + `encodeValuesOnly` instead of crashing in `encoder` > * [Fix] `stringify`: use configured `delimiter` after `charsetSentinel` ([#555](https://redirect.github.com/ljharb/qs/issues/555)) > * [Fix] `stringify`: apply `formatter` to encoded key under `strictNullHandling` ([#554](https://redirect.github.com/ljharb/qs/issues/554)) > * [Fix] `stringify`: skip null/undefined filter-array entries instead of crashing in `encoder` ([#551](https://redirect.github.com/ljharb/qs/issues/551)) > * [Fix] `parse`: handle nested bracket groups and add regression tests ([#530](https://redirect.github.com/ljharb/qs/issues/530)) > * [readme] fix grammar ([#550](https://redirect.github.com/ljharb/qs/issues/550)) > * [Dev Deps] update `@ljharb/eslint-config` > * [Tests] add regression tests for keys containing percent-encoded bracket text > > **6.15.1** > ---------- > > * [Fix] `parse`: `parameterLimit: Infinity` with `throwOnLimitExceeded: true` silently drops all parameters > * [Deps] update `@ljharb/eslint-config` > * [Dev Deps] update `@ljharb/eslint-config`, `iconv-lite` > * [Tests] increase coverage > > **6.15.0** > ---------- > > * [New] `parse`: add `strictMerge` option to wrap object/primitive conflicts in an array ([#425](https://redirect.github.com/ljharb/qs/issues/425), [#122](https://redirect.github.com/ljharb/qs/issues/122)) > * [Fix] `duplicates` option should not apply to bracket notation keys ([#514](https://redirect.github.com/ljharb/qs/issues/514)) Commits * [`9aca407`](ljharb/qs@9aca407) v6.15.2 * [`5e33d33`](ljharb/qs@5e33d33) [Dev Deps] update `@ljharb/eslint-config` * [`21f80b3`](ljharb/qs@21f80b3) [Fix] `stringify`: skip null/undefined entries in `arrayFormat: 'comma'` + `e... * [`a0a81ea`](ljharb/qs@a0a81ea) [Fix] `stringify`: use configured `delimiter` after `charsetSentinel` * [`e3062f7`](ljharb/qs@e3062f7) [Fix] `stringify`: apply `formatter` to encoded key under `strictNullHandling` * [`0c180a4`](ljharb/qs@0c180a4) [Fix] `stringify`: skip null/undefined filter-array entries instead of crashi... * [`3a8b94a`](ljharb/qs@3a8b94a) [Tests] add regression tests for keys containing percent-encoded bracket text * [`96755ab`](ljharb/qs@96755ab) [readme] fix grammar * [`a419ce5`](ljharb/qs@a419ce5) [Fix] `parse`: handle nested bracket groups and add regression tests * [`3f5e1c5`](ljharb/qs@3f5e1c5) v6.15.1 * Additional commits viewable in [compare view](ljharb/qs@v6.14.2...v6.15.2) Updates `express` from 4.22.1 to 4.22.2 Release notes *Sourced from [express's releases](https://github.com/expressjs/express/releases).* > v4.22.2 > ------- > > What's Changed > -------------- > > * fix: restore >20 array parsing for `req.query` repeated keys ([`8d09bfe6`](expressjs/express@8d09bfe)) > + This also unifies array-cap behavior across notations. Indexed notation (`a[0]=...`) was historically capped at qs's default `arrayLimit` of 20 even in older qs versions; after this change it also allows up to 1000 items. > * deps: qs@~6.15.1 > * deps: body-parser@~1.20.5 > > New Contributors > ---------------- > > * [`@suuuuuuminnnnnn`](https://github.com/suuuuuuminnnnnn) made their first contribution in [expressjs/express#7021](https://redirect.github.com/expressjs/express/pull/7021) > * [`@SAY-5`](https://github.com/SAY-5) made their first contribution in [expressjs/express#7181](https://redirect.github.com/expressjs/express/pull/7181) > > **Full Changelog**: <expressjs/express@v4.22.1...v4.22.2> Changelog *Sourced from [express's changelog](https://github.com/expressjs/express/blob/v4.22.2/History.md).* > 4.22.2 / 2026-05-011 > ==================== > > * fix: restore >20 array parsing for `req.query` repeated keys ([`8d09bfe6`](expressjs/express@8d09bfe)) > + This also unifies array-cap behavior across notations. Indexed notation (`a[0]=...`) was historically capped at qs's default `arrayLimit` of 20 even in older qs versions; after this change it also allows up to 1000 items. > * deps: qs@~6.15.1 > * deps: body-parser@~1.20.5 Commits * [`df0abc9`](expressjs/express@df0abc9) 4.22.2 * [`836d366`](expressjs/express@836d366) `4.x` update qs to 6.15.1, body-parser 1.20.5 ([#7224](https://redirect.github.com/expressjs/express/issues/7224)) * [`8d09bfe`](expressjs/express@8d09bfe) fix: restore array parsing for req.query repeated keys ([#7181](https://redirect.github.com/expressjs/express/issues/7181)) * [`d39e8ad`](expressjs/express@d39e8ad) deps: body-parser@~1.20.4 ([#7021](https://redirect.github.com/expressjs/express/issues/7021)) * [`efe85d9`](expressjs/express@efe85d9) deps: qs@^6.14.1 ([#6972](https://redirect.github.com/expressjs/express/issues/6972)) * [`f62378e`](expressjs/express@f62378e) 📝 add note to history * See full diff in [compare view](expressjs/express@v4.22.1...v4.22.2) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/robfrank/linklift/network/alerts).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
TL;DR
Updates
body-parserfrom~1.20.3to~1.20.4to pull in patchedqs@6.14.1and clear the GHSA-6rw7-vpxm-498p advisory. Single-line change, full test pass,npm audit --productionreports 0 vulnerabilities.Context
Issue
1.20.4#70161.20.4"Problem
Express 4.x depends on
body-parser, which transitively depends onqs.qs < 6.14.1is flagged by GHSA-6rw7-vpxm-498p (HIGH severity: arrayLimit bypass → potential DoS via memory exhaustion).This is reported as vulnerable (not malicious).
Dependency chain (before)
Additional context (#6972)
With
~1.20.3inpackage.json:npm install express@4can remain on1.20.3since it still satisfies~1.20.3.Bumping the minimum to
~1.20.4makes the safe patch-level update explicit.Changes
package.json: bumpbody-parserfrom~1.20.3→~1.20.4(single-line change)Evidence
Dependency tree (after)
Vulnerabilities (after)
Tests
npm test 1322 passing (1s) 1 pendingNotes
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.