Skip to content

Fix parse-duration, serialize-javascript, and uuid CVEs (REV-43) - #39

Merged
ashirman merged 1 commit into
mainfrom
feature/rev-43
Jul 7, 2026
Merged

Fix parse-duration, serialize-javascript, and uuid CVEs (REV-43)#39
ashirman merged 1 commit into
mainfrom
feature/rev-43

Conversation

@revopushbot

Copy link
Copy Markdown
Contributor

Clears three Dependabot advisories in the CLI. Independent of #37 (aab-parser/protobufjs).

parse-durationCVE-2025-25283 (HIGH, ReDoS)

Direct dep, bumped 1.1.0 → ^2.1.6. Only used to parse an access-key --ttl string in command-parser.ts.

  • v2 is ESM-only, so require() yields the namespace and the parser is .default.
  • v2 returns null (v1 returned NaN) for unparseable input; ?? 0 preserves v1's Math.floor(...) === 0 behavior.
  • Verified byte-identical to v1 across 18 TTL inputs (compound 1h30m, decimals, empty, garbage, negatives).
  • Adds engines: node >=20.19.0, required for require(esm). Acceptable: Node 18 is EOL and RN toolchains already need Node 20+.

serialize-javascriptGHSA-5c6j-r48x-rmvq (HIGH, RCE/DoS)

Transitive via mocha (devDependency → 6.0.2); never shipped to consumers. No 6.x patch exists, so pinned via overrides to ^7.0.5 (resolves 7.0.7).

uuidCVE-2026-41907 (MODERATE, ReDoS)

Transitive via xcode@3.0.1 → uuid@7.0.3. No fixed xcode release exists (npm's only suggestion is a downgrade), so pinned via overrides to ^11.1.1.

  • Verified compatible with xcode's uuid.v4() usage — xcode.generateUuid() still produces valid pbxproj IDs.
  • Caveat: xcode is a runtime dep, so (like protobufjs in Replace unmaintained aab-parser to clear protobufjs CVEs (REV-36) #37) this override cleans CI/this repo but doesn't reach published-CLI consumers until xcode ships a fix upstream. uuid is used only to generate v4 IDs here, not parse untrusted input, so the ReDoS isn't reachable in practice.

Verification

  • tsc clean; no new lint errors
  • ✅ CLI boots (--version works → require(esm) OK at load)
  • xcode.generateUuid() works under uuid@11.1.1
  • npm audit clear for all three

Note

The uuid alert was surfaced under the react-native-code-push-next repo — that repo needs its own separate fix.

Closes REV-43.

🤖 Generated with Claude Code

Clears three Dependabot advisories in the CLI:

- parse-duration (CVE-2025-25283, ReDoS): bump 1.1.0 -> ^2.1.6. v2 is
  ESM-only, so require() yields the module namespace and the parser is
  `.default`; it returns null (not NaN) for unparseable input, and `?? 0`
  preserves the pre-v2 behaviour of treating that as 0. Verified byte-identical
  to v1 across 18 TTL inputs (compound, decimal, empty, garbage). Adds
  engines: node >=20.19.0, required for require(esm).
- serialize-javascript (GHSA-5c6j-r48x-rmvq, RCE/DoS): overridden to ^7.0.5.
  Transitive via mocha (devDependency), never shipped to consumers; no 6.x
  patch exists.
- uuid (CVE-2026-41907, ReDoS): overridden to ^11.1.1. Transitive via xcode,
  which has no fixed release; verified compatible with xcode's uuid.v4() usage.

Verified: tsc clean; CLI boots (require(esm) OK); xcode.generateUuid() works;
npm audit clear for all three.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ashirman
ashirman merged commit f45082e into main Jul 7, 2026
2 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