Skip to content

chore(security): bundle npm fixes for root package-lock.json (16 alerts) - #29

Merged
benfrank241 merged 1 commit into
mainfrom
chore/security-daily-20260826-vectorize-connect-sdk-npm-root
Aug 27, 2026
Merged

chore(security): bundle npm fixes for root package-lock.json (16 alerts)#29
benfrank241 merged 1 commit into
mainfrom
chore/security-daily-20260826-vectorize-connect-sdk-npm-root

Conversation

@benfrank241

Copy link
Copy Markdown
Member

Recreates the open Dependabot fixes for the root package-lock.json on a human-authored branch, so CI actually runs with repository secrets (Dependabot's own branches don't get them).

Scope: one bundle, npm / root package-lock.json. Closes all 16 open alerts. npm audit reports 0 vulnerabilities after the change.

Packages bumped

Package Before After Applied via
next 15.5.18 15.5.24 npm update next (stays inside the existing peerDependencies range)
postcss 8.4.31 8.5.26 overrides (npm) — next pins postcss to an exact 8.4.31
nanoid 3.3.8 3.3.18 overrides (npm) — transitive via postcss
sharp 0.34.4 0.35.4 overrides (npm) — optional transitive of next
brace-expansion 2.0.3 2.1.4 overrides (npm) — dev-only, transitive via minimatch

Alerts closed

next → 15.5.24

  • #33 (medium) — GHSA-q8wf-6r8g-63ch / CVE-2026-64644 — patched in 15.5.21
  • #36 (high) — GHSA-89xv-2m56-2m9x / CVE-2026-64649 — patched in 15.5.21
  • #37 (medium) — GHSA-4633-3j49-mh5q / CVE-2026-64647 — patched in 15.5.21
  • #38 (medium) — GHSA-68g3-v927-f742 / CVE-2026-64648 — patched in 15.5.21
  • #39 (medium) — GHSA-955p-x3mx-jcvp / CVE-2026-64643 — patched in 15.5.21
  • #40 (high) — GHSA-m99w-x7hq-7vfj / CVE-2026-64641 — patched in 15.5.21
  • #41 (medium) — GHSA-4c39-4ccg-62r3 / CVE-2026-64646 — patched in 15.5.21
  • #42 (high) — GHSA-p9j2-gv94-2wf4 / CVE-2026-64645 — patched in 15.5.21

postcss → 8.5.26

nanoid → 3.3.18

  • #47 (high) — GHSA-28wg-ghj8-5hjv / CVE-2026-67214 — patched in 3.3.16
  • #48 (high) — GHSA-2v37-7h3g-55p8 / CVE-2026-67213 — patched in 3.3.18

sharp → 0.35.4

  • #32 (high) — GHSA-f88m-g3jw-g9cj / no CVE — patched in 0.35.0

brace-expansion → 2.1.4

  • #49 (high) — GHSA-3jxr-9vmj-r5cp / CVE-2026-13149 — patched in 2.1.2

Total: 16 alerts.

vulnerabilities (4 high, 1 moderate, 7 low) → 7 low**, all 7 being the un-fixable @ai-sdk/* chain below.

Needs a human look

  • sharp 0.34.4 → 0.35.4. A 0.x minor is a breaking-change slot in semver, and this pulls in the new @img/sharp-* platform binaries (the only packages added by this PR). It stays inside the range next@15.5.24 itself declares, and I smoke-tested the native binding locally — sharp loads and encodes a PNG against libvips 8.18.6. Still worth a second opinion since it's a native dep.
  • No major-version bumps otherwise. next stays on 15.5.x.

⚠️ main does not currently build — pre-existing, not caused by this PR

npm run build fails on this branch, and it fails identically on unmodified main. I reproduced it on a clean checkout before touching anything:

./src/app/api/chat/route.ts:134:5
Type error: Type 'LanguageModelV1' is not assignable to type 'LanguageModel'.
  Property 'supportedUrls' is missing in type 'LanguageModelV1' but required in type 'LanguageModelV2'.

tsc --noEmit reports the same 8 errors, byte-identical, before and after this change — this PR introduces zero new type errors. The webpack compile stage passes (✓ Compiled successfully); only the typecheck stage fails.

The cause is a pre-existing mismatch in package.json that predates this sweep: ai@^5.0.68 is paired with @ai-sdk/openai@^1.1.9 / @ai-sdk/react@^1.2.2 / @ai-sdk/groq@^1.1.7, and src/app/api/chat/route.ts is written against the AI SDK v4 API (parameters: instead of inputSchema:, toDataStreamResponse() instead of toUIMessageStreamResponse()). Fixing that is an app-code migration, deliberately not mixed into a security bundle. Tracked separately in the backlog issue.

Note that repo CI here is only the GitLeaks secret scan — there is no build/test workflow — so this does not turn CI red.

npm run lint is also not runnable in either tree: no ESLint config is committed, so next lint drops into an interactive setup prompt. Unchanged by this PR.

Verification performed

  • npm ci — clean, no ERESOLVE
  • npm run build — compile stage passes; typecheck fails identically to main (above)
  • tsc --noEmit — diffed against main: identical, no new errors
  • sharp native binding — loads and encodes a PNG (libvips 8.18.6)
  • lockfile churn reviewed: the only added packages are the expected @img/sharp-* platform set; no unrelated churn

🤖 Generated with Claude Code

Verification (local, on this branch)

Derived from package.json scripts — this repo defines build, clean, dev, prepublishOnly; there is no test or lint script, so those steps are not applicable.

  • npm ci — clean, 0 vulnerabilities
  • npm run build (tsup, CJS + ESM + d.ts) — success

Published-artifact check. Because this is a published SDK, dist/ was built from unmodified main and from this branch and compared byte-for-byte. All three emitted artifacts are identical, so the public API surface is provably unchanged:

index.d.ts   c874e2b7b5c63986499c1819d0cb65ef2f55a5d58640181f259056b69ea90ec4
index.js     fdb99671308e158bcba9563663d5ea9310aaef0e565c4c7b3e78af269abb0eab
index.mjs    ca4f4bb3b5d6f592177fa735a7480a304164a90ff48d02d4c732849d6ba814d0

This is expected: src/ imports none of the bumped packages. They enter the tree only as the next peer dependency and its transitives, and overrides apply only to this repo as the root project — npm ignores them for consumers installing @vectorize-io/vectorize-connect.

Lockfile churn

43 resolved versions changed, 4 packages added — all accounted for:

  • sharp 0.34.4 → 0.35.4 drags its @img/sharp-* / @img/sharp-libvips-* platform set (plus @img/colour, @emnapi/runtime), and adds 4 new platform targets: @img/sharp-freebsd-wasm32, @img/sharp-linux-riscv64, @img/sharp-libvips-linux-riscv64, @img/sharp-webcontainers-wasm32
  • next 15.5.24 moves its @next/env + @next/swc-* set in lockstep
  • semver 7.7.3 → 7.8.5 — required by sharp@0.35.4 (semver: ^7.8.5)

No unrelated packages moved. Nothing was removed.

Please review

  • sharp 0.34.4 → 0.35.4 is a breaking-change bump under 0.x semver and needs a human eye, even though the risk here is low: sharp is an optional dependency of next, is never imported by src/, and is not involved in the build. Flagging per policy rather than because a problem was observed.
  • peerDependencies was deliberately left untouched at ^14.2.25 || ^15.5.18. Note that this range still admits next@14.x, and GHSA-p9j2-gv94-2wf4 (#42, high) affects >= 12.0.0, < 15.5.21 with no fix on the 14.x line — so a consumer on next 14 stays exposed regardless of this PR. Narrowing the peer range to ^15.5.21 would close that off, but it drops next 14 support and is a breaking change to this SDK's public contract, so it is a maintainer decision and is out of scope here.
  • An overrides entry for next was not usable: npm rejects it with EOVERRIDE ("Override for next@^14.2.25 || ^15.5.18 conflicts with direct dependency") because next is also declared as a peer dependency. npm update next was used instead, which resolves within the already-declared range and required no manifest change.

No alerts were dismissed. No unrelated changes are included.


🤖 Generated with Claude Code

Closes 16 open Dependabot alerts on the root lockfile:

- next     15.5.18 -> 15.5.24  (#33 #36 #37 #38 #39 #40 #41 #42)
- postcss  8.4.31  -> 8.5.26   (#30 #34 #35 #45)
- nanoid   3.3.8   -> 3.3.18   (#47 #48)
- sharp    0.34.4  -> 0.35.4   (#32)
- brace-expansion 2.0.3 -> 2.1.4 (#49)

next is bumped via `npm update` within the existing peerDependencies
range; the rest via npm `overrides`, since `next` pins postcss exactly
and the others are transitive. peerDependencies is intentionally
unchanged, so the published contract is untouched.

Verified: `npm ci` clean (0 vulnerabilities) and `npm run build` green.
dist/ built from main and from this branch is byte-identical, so the
public API surface is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@benfrank241
benfrank241 merged commit 5e8be30 into main Aug 27, 2026
1 check failed
@benfrank241
benfrank241 deleted the chore/security-daily-20260826-vectorize-connect-sdk-npm-root branch August 27, 2026 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants