Skip to content

weekly-fixes/2026-06-19: patch critical/high dependency advisories (handlebars, next, postcss, defu, effect)#12

Merged
gndclouds merged 3 commits into
mainfrom
weekly-fixes/2026-06-19
Jun 20, 2026
Merged

weekly-fixes/2026-06-19: patch critical/high dependency advisories (handlebars, next, postcss, defu, effect)#12
gndclouds merged 3 commits into
mainfrom
weekly-fixes/2026-06-19

Conversation

@gndclouds

Copy link
Copy Markdown
Member

Weekly maintenance — 2026-06-19

Automated weekly review of recent PRs + dependency/security audit. This run found one concrete, safely-fixable category (dependency advisories) and fixes it here. Other items are listed for human review rather than guessed at.

What changed (security/packages)

Lockfile-only bumps — no package.json semver ranges changed, all drop-in patch/minor updates resolved by npm audit fix:

Package From → To Severity Note
handlebars 4.7.8 → 4.7.9 CRITICAL AST-type-confusion JS injection + prototype-pollution XSS via partials. Handlebars compiles Are.na-sourced template data in src/lib/build.ts, so this sits on a real untrusted-input path.
next 15.5.14 → 15.5.19 HIGH middleware/proxy bypass, RSC cache poisoning, image-optimizer DoS, et al.
postcss 8.5.8 → 8.5.15 MODERATE </style> XSS in stringify output
defu 6.1.4 → 6.1.7 HIGH prototype pollution
effect 3.18.4 → 3.21.0 HIGH AsyncLocalStorage context loss (transitive via prisma)
prisma / @prisma/* 6.19.2 → 6.19.3 aligns with the effect bump

Verification

  • npx tsc --noEmit — clean
  • npx eslint . — clean
  • No test suite exists in the repo (nothing to run)

The four checks, in full

  1. PR correctness — Reviewed recent merged work (Migrate lint to ESLint CLI and align CLAUDE.md with PostgreSQL #9 ESLint CLI, fix: retry transient Neon DB errors in cron rebuild #10 Neon retry) and the latest direct-to-main commits (Are.na 401 cron-noise handling, Studio waitlist restore). No correctness regressions found.
  2. Related tickets — No Linear/Notion ticket links were attached to the reviewed PRs, so acceptance criteria could not be cross-checked.
  3. Packages — Two lockfiles co-exist at the repo root (package-lock.json and yarn.lock); see "Needs human review".
  4. Securitynpm audit --omit=dev flagged 1 critical / multiple high; the safely-patchable ones are fixed above.

Needs human review (not fixed here)

  • Dual lockfile. Both package-lock.json and yarn.lock are committed. Docs (AGENTS.md, CLAUDE.md) and CI (.github/workflows/release-cli.yml) all use npm, so this PR updates package-lock.json only. If the Vercel root build actually resolves from yarn.lock, these bumps won't reach production until yarn.lock is regenerated or removed. Recommend standardizing on npm and deleting yarn.lock — a maintainer decision, since it depends on the Vercel build config.
  • @anthropic-ai/sdk 0.87 → 0.105 (moderate, insecure default file perms) — fix is a breaking major, left for a deliberate upgrade.
  • App-level security follow-ups already catalogued in Security: authenticated session cookies, /api/asset SSRF fix, OAuth state #11 (stored XSS via triple-stache {{{ }}} on Are.na content_html/embed.html, rate limiting, non-constant-time CRON_SECRET compare) — these need code/dependency work and a sanitizer choice, out of scope for a minimal dependency PR.

Context

Complements the open security PR #11, which explicitly deferred "dependency advisories: handlebars, next" as a separate change — this is that change. Branched off main; original branches untouched; one PR per run.

🤖 Generated with Claude Code

Resolves npm-audit advisories without changing package.json semver ranges
(lockfile-only, drop-in patch/minor updates):

- handlebars 4.7.8 -> 4.7.9  (CRITICAL: AST-type-confusion JS injection,
  prototype-pollution XSS via partials; handlebars compiles Are.na-sourced
  template data in src/lib/build.ts, so this is on a real input path)
- next 15.5.14 -> 15.5.19    (HIGH: middleware/proxy bypass, RSC cache
  poisoning, image-optimizer DoS, et al.)
- postcss 8.5.8 -> 8.5.15    (MODERATE: </style> XSS in stringify output)
- defu 6.1.4 -> 6.1.7        (HIGH: prototype pollution)
- effect 3.18.4 -> 3.21.0    (HIGH: AsyncLocalStorage context loss; via prisma)
- prisma/@prisma/* 6.19.2 -> 6.19.3 and related transitive bumps

Verified: `npx tsc --noEmit` clean, `npx eslint .` clean. No test suite present.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
@vercel

vercel Bot commented Jun 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tiny-garden Ready Ready Preview, Comment Jun 20, 2026 6:20pm

Request Review

…-lock

- @anthropic-ai/sdk ^0.87.0 -> ^0.105.0 (latest), clearing the moderate
  advisory (GHSA-p7fg-763f-g4gf, insecure default file perms). The only
  usage is src/lib/ai-site-theme.ts (new Anthropic / messages.create /
  content-block iteration), which is unchanged across the major — tsc and
  eslint pass with no source edits needed.
- Regenerated yarn.lock so it carries the same versions as package-lock.json
  (handlebars 4.7.9, next 15.5.19, postcss 8.5.15, defu 6.1.7, effect 3.21.0,
  prisma 6.19.3, @anthropic-ai/sdk 0.105.0). Both lockfiles kept per request.

Verified: `npx tsc --noEmit` clean, `npx eslint .` clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
The hardcoded fallback `claude-sonnet-4-20250514` is deprecated and past its
June 15 2026 EOL, so default-model calls (no ANTHROPIC_MODEL set) would fail at
runtime. Swap to the current drop-in replacement `claude-sonnet-4-6`. The
ANTHROPIC_MODEL env override path is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
@gndclouds
gndclouds merged commit 3c4f3e8 into main Jun 20, 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.

1 participant