Skip to content

chore(deps): bump qs from 6.15.2 to 6.16.0 - #6128

Open
dependabot[bot] wants to merge 1 commit into
unstablefrom
dependabot/npm_and_yarn/qs-6.16.0
Open

chore(deps): bump qs from 6.15.2 to 6.16.0#6128
dependabot[bot] wants to merge 1 commit into
unstablefrom
dependabot/npm_and_yarn/qs-6.16.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 3, 2026

Copy link
Copy Markdown
Contributor

Bumps qs from 6.15.2 to 6.16.0.

Changelog

Sourced from qs's changelog.

6.16.0

  • [New] stringify: add a depth option to bound recursion depth (default Infinity)
  • [Fix] stringify: serialize Date values when a filter is provided
  • [Fix] parse: enforce arrayLimit on comma groups under []= when throwOnLimitExceeded is set
  • [Fix] parse: flatten a collection appended to an overflowed array (#571)
  • [Fix] utils: isBuffer: do not invoke a non-callable constructor.isBuffer
  • [Fix] stringify: do not let allowEmptyArrays skip cycle detection (or drop own keys) on an empty array with own properties
  • [Fix] stringify: encode dots in a top-level key with a primitive value when encodeDotInKeys is set (#562)
  • [Docs] threat model: clarify stringify deep-nesting DoS is caller-bounded
  • [Docs] clarify arrayLimit is a representation threshold, not an element-count cap
  • [Tests] parse: remove a test that pinned []= comma groups escaping arrayLimit
  • [Tests] stringify: pin current encodeDotInKeys separator-dot behavior
  • [Dev Deps] update @ljharb/eslint-config, eslint
  • [Dev Deps] update eslint, evalmd

6.15.3

  • [Fix] parse: enforce throwOnLimitExceeded for cumulative array growth via combine/merge
  • [Fix] utils: respect encoding of surrogate pairs across chunks (#559)
  • [Robustness] parse: throw the arrayLimit error before splitting oversized comma values
  • [Robustness] utils.merge / utils.assign: avoid invoking __proto__ setter when copying own properties
  • [Robustness] utils: enforce arrayLimit consistently across merge's array paths
  • [Perf] utils: make compact O(n) via a side-channel visited-set instead of Array.indexOf
  • [Deps] update side-channel
  • [Dev Deps] update eslint, mock-property, tape
  • [Tests] parse: characterize current lenient handling of unbalanced bracket keys (#558)
Commits
  • bb9379e v6.16.0
  • 62fd254 [Fix] stringify: serialize Date values when a filter is provided
  • 8859c37 [Fix] parse: enforce arrayLimit on comma groups under []= when `throwOn...
  • 8079adc [Tests] parse: remove a test that pinned []= comma groups escaping `array...
  • d56f48c [Fix] parse: flatten a collection appended to an overflowed array
  • e83d321 [Fix] utils: isBuffer: do not invoke a non-callable constructor.isBuffer
  • 7e87a07 [Dev Deps] update @ljharb/eslint-config, eslint
  • 9a76af2 [Dev Deps] update eslint, evalmd
  • 3a890d4 [Dev Deps] update eslint, evalmd
  • b433a9b [Fix] stringify: do not let allowEmptyArrays skip cycle detection (or dro...
  • Additional commits viewable in compare view

Dependabot compatibility score

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 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 <dependency name> 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.

Bumps [qs](https://github.com/ljharb/qs) from 6.15.2 to 6.16.0.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.15.2...v6.16.0)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.16.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Sep 3, 2026
@rtibblesbot

rtibblesbot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

🟡 Waiting for changes

Last updated: 2026-09-03 05:48 UTC

@rtibblesbot rtibblesbot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #6128qs 6.15.2 → 6.16.0 (spans 6.15.3), minor, production dependency (package.json dependencies). CI passing (Frontend tests, Build frontend assets, Browser smoke test, All file linting).

Breaking changes: none.
Peer dependencies: none added. qs gains a direct dep on es-define-property, already in the tree; lockfile churn is confined to qs and side-channel.

Security fixes (both first patched in 6.16.0, so 6.15.2 was affected):

  • GHSA-4mjr-xmp4-gh2g (medium) — stringify calls utils.isBuffer() on every value, which invokes obj.constructor.isBuffer(obj) without checking it is callable → TypeError.
  • GHSA-x5fp-wj9c-mxmx (medium) — bracket-key input bypasses arrayLimit / throwOnLimitExceeded when comma: true.

Compatibility: qs is imported in one place — contentcuration/contentcuration/frontend/shared/client.js:3, for qs.stringify(params, { arrayFormat: 'comma', encoder }). No code changes required.

  • New stringify depth option defaults to Infinity — prior behaviour.
  • Remaining stringify fixes are gated on filter / allowEmptyArrays / encodeDotInKeys, none of which Studio sets; parse fixes are unreachable (Studio never calls parse).
  • One change can reach Studio's output: 6.15.3's "respect encoding of surrogate pairs across chunks" (#559). client.js delegates to defaultEncoder, so a param over 1024 chars containing astral characters now encodes correctly instead of splitting the pair. Strictly a correction.

suggestion — pnpm-lock.yaml: transitive qs (via body-parser/express) lands on 6.15.3, still inside both advisory ranges. Both reach the tree only through webpack-dev-server, a devDependency, so nothing shipped is exposed — no action needed here, but Dependabot alerts will likely keep flagging qs. A pnpm.overrides pin to ^6.16.0 would silence it if that becomes noisy.

Note: jest_config/globalMocks/client.js:45 replaces paramsSerializer with JSON.stringify, so the Frontend tests job never exercises the real serializer; Build frontend assets + Browser smoke test are the load-bearing signal.


@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly

How was this generated?

Ran a dependency-update review pipeline over the version bump:

  • Classified the bump by semver (patch / minor / major) and dependency type (production vs. development)
  • Extracted the changelog and release notes across the version range
  • Assessed compatibility with this project's usage and whether any code changes are required
  • Treated CI as the primary safety net
  • Scaled the review depth to the update's risk
  • Chose the verdict from semver risk, changelog findings, and CI status

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant