Skip to content

chore(deps): bump qs from 6.15.2 to 6.16.0 in /mcp-server - #177

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

chore(deps): bump qs from 6.15.2 to 6.16.0 in /mcp-server#177
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/mcp-server/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.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

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: indirect
...

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

Copy link
Copy Markdown
Contributor

Security triage: Tier B — needs a decision (runtime scope, CI red on head)

What and why

qs 6.15.2 -> 6.16.0 (moderate; via express -> body-parser)

Two advisories close together:

Advisory CVE CVSS Vulnerable Patched
GHSA-4mjr-xmp4-gh2g CVE-2026-82417 5.3 >=2.2.5 <6.16.0 >=6.16.0
GHSA-x5fp-wj9c-mxmx CVE-2026-82562 3.7 >=6.14.2 <=6.15.3 >=6.16.0

Closes Dependabot alerts #148 and #149. Vanta remediateByDate 2026-11-02 for both, 55 days remaining — outside today's 30-day window, so triaged in place rather than driven. One PR covers both findings; neither warrants a second.

Advisory impact, quoted rather than paraphrased: "qs: Denial of Service via Attacker Controlled isBuffer" (CVE-2026-82417) and "qs array-limit bypass via bracket-key comma parsing" (CVE-2026-82562).

Exposure

Runtime, and it ships. qs is reached only through request parsing:

node_modules/express     --[dependencies]--> qs
node_modules/body-parser --[dependencies]--> qs

mcp-server/package.json is @currents/mcp@2.4.2 with no private: true, and the repo root carries a Dockerfile. So this code path is both published to npm and baked into an image, and the vulnerable functions are query-string parsing on inbound HTTP — the reachable case for a DoS advisory, not a theoretical one.

That makes it Tier B by scope alone, independent of CI: runtime dependencies never auto-merge in this routine, transitive or not.

The fix

lockfile-upgrade. qs is not declared in any manifest here (root dependencies are @modelcontextprotocol/sdk, commander, pino, pino-pretty, zod), so the transitive requesters' ranges absorb 6.16.0 with no manifest edit or override.

Breaking-change check

6.15.2 -> 6.16.0 is a minor bump within the same major. I could not obtain release notes for 6.16.0 through this sandbox, so I am not asserting the changelog is clean — that is one of the reasons this wants a human rather than a rubber stamp. qs minors have historically tightened parser limits, which is the class of change that can alter behaviour for callers relying on permissive parsing.

Verification

Not verified locally in this run. What I did run:

  • npm audit --json in mcp-server/ on main: confirms qs >=6.14.2 <=6.15.3 moderate, fixAvailable: true, and that qs is the only advisory in this lockfile.
  • Lockfile reverse-dependency trace to establish the express/body-parser path above.

I did not check out this branch, install, or run test/build against it, and am not reporting them as passing. Per the routine's own rule, a Dependabot PR I have not run myself is Tier B by default.

CI coverage

For head e3c38a14:

Check Conclusion
Test (Node 20.x) success
Test (Node 22.x) success
Test (Node 24.x) success
Cursor Agent Dependency Review failure
[code]smith skipped

Cursor Agent Dependency Review failed 2 seconds after starting, which reads as a harness or credential problem rather than a finding about the diff — but I have not confirmed that, and it did conclude failure.

What a human should still check

  1. Read 6.16.0's release notes for parser-limit changes before merging — this is inbound request parsing on a published server, so a behaviour change surfaces as rejected client requests.
  2. Run the suite against the branch locally; three green Node matrix jobs are Dependabot's evidence about Dependabot's branch, not a substitute.
  3. Decide whether Cursor Agent Dependency Review failing this fast is infrastructure; if so it will red every dependency PR here.

Needs release

@currents/mcp@2.4.2 is a published package. Landing this closes the alerts in the repo but does not reach consumers until a release goes out. This run does not publish anything — flagging it for whoever cuts the next release.


Generated by Claude Code

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