Skip to content

security: patch npm/yarn vulnerabilities across JS apps#266

Open
Nick Robinson (nickrobinson) wants to merge 1 commit intomainfrom
claude/fervent-planck-uR1kt
Open

security: patch npm/yarn vulnerabilities across JS apps#266
Nick Robinson (nickrobinson) wants to merge 1 commit intomainfrom
claude/fervent-planck-uR1kt

Conversation

@nickrobinson
Copy link
Copy Markdown
Collaborator

Summary

Patches security vulnerabilities found via npm audit and npx yarn audit across all JavaScript/TypeScript apps. All fixes are minor or patch version bumps only — no major version changes.

javascript-web & javascript-tui — npm audit fix

Severity Package Advisory Fix
HIGH @xmldom/xmldom GHSA-wh4c-j3r5-mjhp XML injection via unsafe CDATA auto-fixed
MODERATE brace-expansion GHSA-f886-m6hf-6m8v DoS via zero-step sequence auto-fixed
MODERATE yaml GHSA-48c2-rrv3-qjmp Stack overflow via deeply nested YAML auto-fixed

react-native — yarn resolutions

Severity Package Advisory Resolution
MODERATE fast-xml-parser GHSA-jp2q-39xq-3w4g Entity expansion limits bypass 5.5.6 → 5.5.7
MODERATE brace-expansion GHSA-f886-m6hf-6m8v → 2.0.3
MODERATE yaml GHSA-48c2-rrv3-qjmp → 2.8.3
HIGH lodash GHSA-r5fr-rjxr-66jc Code injection via _.template → 4.18.1
MODERATE/LOW qs DoS via arrayLimit bypass → 6.14.2

react-native-expo — npm overrides + yarn resolutions

Severity Package Advisory Fix
MODERATE fast-xml-parser GHSA-jp2q-39xq-3w4g 5.5.6 → 5.5.7 (direct dep + resolutions + overrides)
MODERATE brace-expansion GHSA-f886-m6hf-6m8v → 2.0.3 (resolutions + overrides)

MANUAL INTERVENTION REQUIRED

The following vulnerabilities could not be automatically patched because all available fixes require a major version bump or a version downgrade:

App Package Severity Issue Blocker
react-native-expo @tootallnate/once (via jest-expo) LOW GHSA-vpq2-c234-7xj6 Incorrect control flow Fix requires jest-expo@47.0.1 which is a downgrade from ~53.0.9
react-native js-yaml (via eslint) MODERATE Prototype pollution in merge Fix version 3.14.2 but eslint and cosmiconfig require ^4.1.0 — forcing v3 is a major downgrade
react-native ajv (via eslint) MODERATE ReDoS with $data option Fix version 6.14.0 but eslint-plugin-ft-flow and expo-build-properties require ^8.x

Test plan

  • javascript-web: npm audit → 0 vulnerabilities
  • javascript-tui: npm audit → 0 vulnerabilities
  • react-native: npx yarn audit → 0 vulnerabilities
  • react-native-expo yarn: npx yarn audit → 1 low (unfixable, see above)
  • react-native-expo npm: npm audit → 5 low (unfixable jest-expo chain, see above)

https://claude.ai/code/session_01BY4cXcaQYDMzdG2bzUbFaC

javascript-web, javascript-tui (npm audit fix):
- @xmldom/xmldom <0.8.12 → patched (HIGH: GHSA-wh4c-j3r5-mjhp, XML injection)
- brace-expansion <1.1.13/<2.0.3 → patched (MODERATE: GHSA-f886-m6hf-6m8v, DoS)
- yaml 2.0.0-2.8.2 → 2.8.3+ (MODERATE: GHSA-48c2-rrv3-qjmp, stack overflow)

react-native (yarn resolutions):
- fast-xml-parser 5.5.6 → 5.5.7 (MODERATE: GHSA-jp2q-39xq-3w4g, entity expansion)
- brace-expansion → 2.0.3 (MODERATE: GHSA-f886-m6hf-6m8v)
- yaml → 2.8.3 (MODERATE: GHSA-48c2-rrv3-qjmp)
- lodash → 4.18.1 (HIGH: GHSA-r5fr-rjxr-66jc, code injection)
- qs → 6.14.2 (MODERATE/LOW: DoS via arrayLimit bypass)

react-native-expo (npm overrides + yarn resolutions):
- fast-xml-parser 5.5.6 → 5.5.7 (MODERATE: GHSA-jp2q-39xq-3w4g)
- brace-expansion → 2.0.3 (MODERATE: GHSA-f886-m6hf-6m8v)

Remaining unfixed (require major version bumps or no patched version in branch):
- react-native-expo: @tootallnate/once via jest-expo (LOW, fix = jest-expo major bump)
- react-native: js-yaml via eslint (MODERATE, js-yaml v3→v4 would be breaking)
- react-native: ajv via eslint (MODERATE, ajv v6→v8 would be breaking)

https://claude.ai/code/session_01BY4cXcaQYDMzdG2bzUbFaC
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR patches dependency vulnerabilities identified by npm audit / yarn audit across the repo’s JavaScript/TypeScript apps by updating lockfiles and adding Yarn resolutions / npm overrides where needed.

Changes:

  • Update yarn.lock / package-lock.json files to pull in patched transitive dependency versions.
  • Add/update Yarn resolutions (react-native) and npm overrides + Yarn resolutions (react-native-expo) to force vulnerable transitive deps to safe versions.
  • Bump a set of React Native Expo CLI/tooling dependencies via lockfile updates.

Reviewed changes

Copilot reviewed 2 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
react-native/yarn.lock Updates transitive deps for vulnerability remediation (but currently contains an invalid minimatch resolution grouping).
react-native/package.json Adds/extends resolutions to force patched versions of vulnerable packages.
react-native-expo/yarn.lock Updates Expo dependency graph; introduces platform-specific lockfile issues that can break macOS --frozen-lockfile installs.
react-native-expo/package.json Adds direct fast-xml-parser dependency and adds resolutions/overrides for vulnerable transitive deps.
react-native-expo/package-lock.json Mirrors npm-side dependency graph updates to remediate vulnerabilities.
javascript-web/package-lock.json Updates audited transitive dependencies to patched versions.
javascript-tui/package-lock.json Updates audited transitive dependencies to patched versions.
Files not reviewed (3)
  • javascript-tui/package-lock.json: Language not supported
  • javascript-web/package-lock.json: Language not supported
  • react-native-expo/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

3 participants