Skip to content

fix: bump devDependency resolutions to clear 14 CVEs - #331

Merged
msingleton merged 1 commit into
mainfrom
security/rni-deps-2026-08
Aug 13, 2026
Merged

fix: bump devDependency resolutions to clear 14 CVEs#331
msingleton merged 1 commit into
mainfrom
security/rni-deps-2026-08

Conversation

@msingleton

Copy link
Copy Markdown
Member

Clears 14 Vanta / Dependabot alerts (1 CRITICAL, 13 HIGH) in the build and test toolchain.

Why this is low risk

Every affected package is a devDependency of the React Native / Metro / Jest / release-it toolchain. The published SDK ships only react-redux and redux as runtime dependencies, so npm consumers were never exposed — this is about clearing our own alert surface, not a consumer-facing vulnerability.

All bumps are patch or minor. No API surface changes.

Changes

Package Was Now Clears
tar 7.5.11 7.5.22 CVE-2026-59873 (CRITICAL, past SLA), CVE-2026-59874
fast-uri 3.1.2 3.1.5 CVE-2026-13676, CVE-2026-16221, CVE-2026-18446
shell-quote 1.8.4 1.10.0 CVE-2026-13311
brace-expansion 2.0.2 2.1.4 CVE-2026-13149, CVE-2026-14257
ip-address 10.1.0 10.5.0 CVE-2026-69192
js-yaml 3.14.2 / 4.1.1 3.15.1 / 4.3.1 CVE-2026-59869 (x2), GHSA-5p4m-2wfm-xmqj
ws 6.2.3 / 7.5.10 6.2.6 / 7.5.13 CVE-2026-48779 (x2)

js-yaml and ws are pinned per-descriptor ("js-yaml@^3.13.1", "ws@^7", etc.) because two majors coexist in the tree — an unqualified resolution would force one major onto both consumers and break the other.

Why resolutions rather than upgrading the direct dependencies

Per CLAUDE.md, upgrading the direct dependency is preferred. Here it isn't practical: react-native (0.81.1) and @react-native-community/cli (20.1.2) are pinned to exact versions and pull in most of these transitively. Bumping React Native to fix a DoS in the Metro dev server's ws is a far larger change than the risk warrants. Resolutions are the established stopgap in this repo.

Not addressed here

linkify-it (CVE-2026-59887) stays at 2.2.0. It is pinned by markdown-it@^10, which requires linkify-it@^2, so forcing 5.0.2 would break it. markdown-it is reached only through release-it's conventional-changelog generator, parsing our own commit messages during a maintainer-initiated publish — no attacker-controlled input path. Dismissed in Vanta and Dependabot (alert 308) as tolerable risk; revisit on a markdown-it major upgrade.

Verification

  • yarn test — 2 suites passed, 1 todo
  • yarn typecheck — clean
  • yarn lint — clean
  • yarn prepare (bob build) — commonjs, module, and typescript targets all wrote successfully

Resolved versions confirmed at or above each advisory's patched version in yarn.lock.

🤖 Generated with Claude Code

All affected packages are build/test-toolchain devDependencies. The
published SDK ships only react-redux and redux, so consumers were never
exposed; this clears the Vanta/Dependabot alerts.

- tar ^7.5.11 -> ^7.5.19  (CVE-2026-59873 CRITICAL, CVE-2026-59874)
- fast-uri ^3.1.2 -> ^3.1.5  (CVE-2026-13676, 16221, 18446)
- shell-quote ^1.8.4 -> ^1.9.0  (CVE-2026-13311)
- brace-expansion ^2.1.3  (CVE-2026-13149, CVE-2026-14257)
- ip-address ^10.3.1  (CVE-2026-69192)
- js-yaml ^3.15.1 / ^4.3.1  (CVE-2026-59869, GHSA-5p4m-2wfm-xmqj)
- ws ^6.2.4 / ^7.5.11  (CVE-2026-48779)

js-yaml and ws are pinned per-descriptor because two majors coexist in
the tree; an unqualified resolution would force one major onto both
consumers.

Not addressed here: linkify-it (CVE-2026-59887) stays at 2.2.0. It is
pinned by markdown-it@^10, which requires linkify-it@^2, so forcing 5.x
would break it. markdown-it runs only inside release-it's changelog
generator over our own commit messages, so there is no attacker-
controlled input path. Tracked as dismissed in Vanta.

Resolutions are used rather than upgrading the direct dependencies
because react-native and @react-native-community/cli are pinned to
exact versions (0.81.1 / 20.1.2) and pull in most of these transitively.

Verified: yarn test, typecheck, lint, and bob build all pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@msingleton
msingleton merged commit f839583 into main Aug 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants