Security patches: fix qs DoS vuln + JS dependency updates - #301
Security patches: fix qs DoS vuln + JS dependency updates#301Nick Robinson (nickrobinson) wants to merge 1 commit into
Conversation
- react-native: bump qs override 6.14.2→6.15.2 (GHSA-q8mj-m7cp-5q26) - react-native: add body-parser 1.20.5 override (moderate vuln) - All JS apps: npm update to pull latest patch/minor deps within semver ranges https://claude.ai/code/session_01PZM7zLyuuXX1BFpzZtpn5P
There was a problem hiding this comment.
Pull request overview
Applies security-driven dependency updates to the JS apps in the repo. The react-native app gets explicit overrides to patch a qs DoS vulnerability and a body-parser advisory, while lock files across electron, javascript-tui, javascript-web, react-native, and react-native-expo are refreshed via npm update / yarn within existing semver ranges. The PR description notes the react-native-expo uuid transitive vulnerability is deferred to a future SDK upgrade.
Changes:
- Bump
qsoverride from6.14.2→6.15.2(GHSA-q8mj-m7cp-5q26) and addbody-parser1.20.5override inreact-native/package.json. - Refresh transitive deps in
react-native/yarn.lockto match the new overrides (also downgradesiconv-lite,type-is,raw-body, etc. as a side effect). - Routine minor/patch lockfile updates in
electron/package-lock.jsonandjavascript-tui/package-lock.json(Babel 7.29.7, semver dedupe, rollup 4.61.0, swc 1.15.40, typescript-eslint 8.60.0, etc.).
Reviewed changes
Copilot reviewed 1 out of 7 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| react-native/package.json | Adds body-parser@1.20.5 override and bumps qs to 6.15.2 in both overrides and resolutions. |
| react-native/yarn.lock | Reflects the new overrides; pins body-parser and its old-style deps to 1.x equivalents. |
| javascript-tui/package-lock.json | Routine npm-update refresh (Babel 7.29.7, js-yaml 4.2.0, hasown 2.0.4, etc.). |
| electron/package-lock.json | Routine npm-update refresh (electron 42.3.0, rollup 4.61.0, swc 1.15.40, typescript-eslint 8.60.0). |
Files not reviewed (1)
- electron/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "body-parser": "1.20.5", | ||
| "brace-expansion": "1.1.13", | ||
| "fast-xml-parser": "5.7.3", | ||
| "js-yaml": "4.1.1", | ||
| "lodash": "4.18.1", | ||
| "qs": "6.14.2", | ||
| "qs": "6.15.2", | ||
| "yaml": "2.8.3" | ||
| }, | ||
| "resolutions": { | ||
| "ajv": "6.14.0", | ||
| "body-parser": "1.20.5", |
|
Closing this because we are moving quickstart code to the monorepo. |
Summary
qsoverride bumped from6.14.2→6.15.2to close GHSA-q8mj-m7cp-5q26 — a remotely-triggerable DoS viaqs.stringifywhenencodeValuesOnlyis set and the input array containsnull/undefinedentries. The prior override pinned a version inside the vulnerable range (6.11.1–6.15.1).body-parseroverride added at1.20.5to close a moderate vulnerability affecting1.20.3–1.20.4. This is a transitive dep via@react-native-community/cli.npm updateapplied acrosselectron,javascript-tui,javascript-web,react-native, andreact-native-expoto pull in all latest patch/minor releases within existing semver ranges. Nopackage.jsonversion constraints were changed for these.react-native/yarn.lockandreact-native-expo/package-lock.jsonupdated alongside their npm counterparts per repo convention.Dependency audit results
MANUAL INTERVENTION REQUIRED
react-native-expo — uuid GHSA-w5hq-g745-h8pq (moderate)
uuid < 11.1.1— missing buffer bounds check in v3/v5/v6 whenbufis provided.expo→@expo/cli→@expo/config-plugins→xcode→uuid ^7.0.3npm audit fix— the tool's suggested fix is to downgradeexpofrom55.xto46.0.21, which is a 9-major-version regression and clearly incorrect. Adding auuid: ">=11.1.1"resolution was not applied becausexcodedeclaresuuid: "^7.0.3"and the uuid v8+ API changed (removed UMD/CommonJS default export); forcing v11 risks breakingxcodeinternals without a live build to verify against.react-native-expoto Expo SDK 56 (expo@~56.0.0), which ships a newer@expo/config-pluginsthat depends on a patchedxcode. This is a coordinated SDK upgrade that should be done as a separate PR after verifying native builds.Test plan
npm auditinreact-native→ 0 vulnerabilitiesnpm auditinjavascript-web,javascript-tui,electron→ 0 vulnerabilities eachreact-nativeapp builds:react-native build-android/react-native build-ioselectronapp builds:npm run buildjavascript-webbuilds:npm run buildhttps://claude.ai/code/session_01PZM7zLyuuXX1BFpzZtpn5P
Generated by Claude Code