Skip to content

fix(deps): bump openssl/quinn-proto/rustls-webpki/russh/nanoid for disclosed CVEs - #709

Open
Svector-anu wants to merge 1 commit into
arcboxlabs:masterfrom
Svector-anu:security/bump-deps-openssl-quinn-webpki-russh-nanoid
Open

fix(deps): bump openssl/quinn-proto/rustls-webpki/russh/nanoid for disclosed CVEs#709
Svector-anu wants to merge 1 commit into
arcboxlabs:masterfrom
Svector-anu:security/bump-deps-openssl-quinn-webpki-russh-nanoid

Conversation

@Svector-anu

Copy link
Copy Markdown

Automated dependency bump to address disclosed CVEs.

Rust (Cargo.lock)

Package From To Advisories Severity
openssl 0.10.76 0.10.80 GHSA-8c75-8mhr-p7r9, GHSA-ghm9-cr32-g9qj, GHSA-hppc-g8h3-xhp3, GHSA-pqf5-4pqq-29f5, GHSA-xp3w-r5p5-63rr (+ related moderates fixed by 0.10.80) High
quinn-proto 0.11.14 0.11.15 GHSA-4w2j-m93h-cj5j High
rustls-webpki 0.103.10 0.103.13 GHSA-82j2-j2ch-gfr8 High
russh 0.62.2 0.62.5 GHSA-5xvq-cp9x-6p6r, GHSA-cqjc-rmpq-xprq, GHSA-g9hv-x236-4qp3, GHSA-m65r-rprj-r5rg Moderate

TypeScript SDK (sdk/typescript/package-lock.json)

Package From To Advisory Severity
nanoid (via postcss) 3.3.17 3.3.18 GHSA-2v37-7h3g-55p8 High

Verification

  • Reproduced locally: yes
  • Command: osv-scanner scan source --recursive --no-ignore --format=json .
  • Before: HIGH hits on openssl@0.10.76, quinn-proto@0.11.14, rustls-webpki@0.103.10, nanoid@3.3.17
  • After: those HIGH package versions cleared via cargo update -p … --precise … / npm update nanoid
  • Environment: osv-scanner 2.5.1, cargo 1.98.0

Detected by osv-scanner. No code changes outside the lockfiles.

…r disclosed CVEs

Advisory:
- openssl 0.10.76 → 0.10.80 (GHSA-8c75-8mhr-p7r9, GHSA-ghm9-cr32-g9qj, GHSA-hppc-g8h3-xhp3, GHSA-pqf5-4pqq-29f5, GHSA-xp3w-r5p5-63rr, plus related moderates)
- quinn-proto 0.11.14 → 0.11.15 (GHSA-4w2j-m93h-cj5j)
- rustls-webpki 0.103.10 → 0.103.13 (GHSA-82j2-j2ch-gfr8)
- russh 0.62.2 → 0.62.5 (GHSA-5xvq-cp9x-6p6r, GHSA-cqjc-rmpq-xprq, GHSA-g9hv-x236-4qp3, GHSA-m65r-rprj-r5rg)
- nanoid 3.3.17 → 3.3.18 in sdk/typescript (GHSA-2v37-7h3g-55p8)

Detected by osv-scanner. Lockfile-only changes.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ℹ️ No critical issues — one minor suggestion inline.

Reviewed changes — reviewed the complete diff of commit fd810f26 against master (55b384b9) — both lockfiles — and verified the bump end-to-end: reproduced the exact Cargo.lock from master with the four stated cargo update -p … --precise commands under cargo 1.98.0 (byte-identical result), validated both locks against their manifests (cargo metadata --locked, live npm ci on npm 11.16.0), and cross-checked every pinned version against OSV and the linked advisories.

  • openssl 0.10.76 → 0.10.80 (+ forced openssl-sys 0.9.117, once_cell dep dropped): OSV reports zero advisories at 0.10.80.
  • quinn-proto 0.11.14 → 0.11.15: GHSA-4w2j-m93h-cj5j (remote memory exhaustion, High) is patched exactly in 0.11.15.
  • rustls-webpki 0.103.10 → 0.103.13: zero advisories at 0.103.13.
  • russh 0.62.2 → 0.62.5 — direct dep of arcbox-fleet-agent (^0.62.1, compatible); zero advisories at 0.62.5. The crypto-graph moves are forced fallout, verified against russh 0.62.5's own manifests: curve25519-dalek = "5", ed25519-dalek = "3", sha3 = "0.12.0" replace 0.62.2's =5.0.0-rc.1 / =3.0.0-rc.1 / "0.11.0" pins, adding sha3 0.12.0 + sponge-cursor while ml-kem keeps sha3 0.11.0.
  • nanoid 3.3.17 → 3.3.18 (transitive of postcss ^3.3.16): GHSA-2v37-7h3g-55p8 / CVE-2026-67213 (High) is patched exactly in 3.3.18; live npm ci installs 3.3.18.

One note on the Cargo.lock shape, since it reads as alarming in a security diff: the socket2 0.6.4 → 0.5.10, windows-sys 0.61.2 → 0.60.2/0.52.0/0.48.0, windows-core 0.62.2 → 0.57.0, and getrandom 0.4.2 → 0.3.4 ref changes are produced by cargo itself, not hand-edited — those consumers use range requirements (hyper-util declares ">=0.5.9, <0.7", tempfile ">=0.3.0, <0.5" / ">=0.52, <0.62"), and the precise updates unify them onto versions already pinned in the lock by narrower-requirement consumers. Verified: none of the downgraded versions is yanked, none carries an advisory, and the result still passes cargo metadata --locked.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using openai-compatible/@cf/zai-org/glm-5.3-flash𝕏

"@connectrpc/connect": "^2.1.2",
"@connectrpc/connect-node": "^2.1.2"
"@connectrpc/connect-node": "^2.1.2",
"nanoid": "3.3.18"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nanoid is not a direct SDK dependency — it's postcss's transitive dev-toolchain dep. npm update nanoid from master's lock lands the same 3.3.18 fix as a two-line diff, while this install-style update fabricates a direct production dependency (dropping "dev": true) and strips all 51 libc platform constraints from the lock. Worth redoing the npm side with npm update nanoid.

Technical details
# Redo the npm-side bump with `npm update nanoid`

## Affected sites
- `sdk/typescript/package-lock.json:15` — root package gains `"nanoid": "3.3.18"` while `package.json` declares no such dependency; `node_modules/nanoid` loses `"dev": true`; 51 optional platform packages lose their `"libc"` constraints.

## Evidence
- `npm update nanoid` (npm 11.16.0, from master's lock) bumps `node_modules/nanoid` to 3.3.18, keeps `"dev": true`, and touches nothing else — verified locally.
- This PR's lock matches an install-style update (`npm install nanoid@3.3.18 --package-lock-only`) except the libc strip: 51 of 52 structural diffs vs that reproduction are libc-only. It was not produced by the stated `npm update nanoid`.
- Harmless today: `npm ci` succeeds and installs nanoid 3.3.18; `package.json` (unchanged in this PR) governs the published SDK.

## Required outcome
- Lock delta for the nanoid fix limited to the `node_modules/nanoid` entry; no root-dependency addition, no libc churn.

## Suggested approach
- From master's `package-lock.json`: `npm update nanoid` (postcss requires `^3.3.16`, so 3.3.18 resolves cleanly). Use `overrides` in `package.json` only if a hard pin on the transitive nanoid is actually wanted.

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.

1 participant