Visitar URL original
Security check-in 2026-11-13 by jasverix · Pull Request #451 · bcc-code/bcc-design · GitHub
Skip to content

Security check-in 2026-11-13 - #451

Merged
jasverix merged 6 commits into
mainfrom
security/checkin-2026-11-13
Nov 13, 2026
Merged

jasverix merged 6 commits into
mainfrom
security/checkin-2026-11-13

Conversation

@jasverix

Copy link
Copy Markdown
Collaborator

Security check-in 2026-11-13

Summary: 0 critical · 2 high · 12 medium · 1 low · 7 fixed in this PR · 1 separate PR · 6 need a decision

Run unattended by the BCC security check-in (scheduled task). It scanned the default branch main at 1d6af4c4 with its full history (1,151 commits).
Tools:

  • OSV-Scanner 2.7.1, against its offline database (downloaded at run time). The online API api.osv.dev is blocked by this environment's network policy.
  • gitleaks v8, built from source, over the full git history with --redact.
  • Code review: manual and read-only. The claude-security plugin was not available.
  • Toolchains installed: Node 24 (as in CI) with pnpm 12.16.1.

Fixed in this PR

All in component-library/pnpm-lock.yaml. All are dev-only, most through firebase-tools, and none ship to consumers.

Severity What Change Advisory
High zod 4.6.5 → 4.6.6 GHSA-mrhx-c7xc-m3w5
High body-parser 1.20.8 → 1.20.9, 2.3.0 → 2.4.0 GHSA-27r3-jxmh-p828
Medium qs 6.16.0 → 6.16.1 GHSA-6pq8-jhm2-2vcw
Medium ip-address 10.7.2 → 10.7.4 GHSA-rxp7-6hxx-x8q5
Medium @vitest/mocker (via vitest, @vitest/browser-playwright and @vitest/coverage-v8) 4.1.11 → 4.1.12 GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp
Medium hono 4.13.12 → 4.13.16 GHSA-3gg2-335m-rxc6, GHSA-46wx-v44x-9hh2, GHSA-4h7h-rv7c-7m2v, GHSA-4m76-xfj5-7975, GHSA-h7mg-cq63-vhpq
Medium @hono/node-server 2.1.3 → 2.1.6 GHSA-jpvv-r467-5p4w, GHSA-qv5m-9pm6-hqp3

What changed in package.json: only the three vitest packages. vitest goes to ^4.1.12, and @vitest/browser-playwright and @vitest/coverage-v8 to 4.1.12. Everything else is lockfile-only, at the lowest fixed version, and pnpm-workspace.yaml is unchanged.

Verification (component-library, Node 24, pnpm 12.16.1):

  • pnpm install --frozen-lockfile, pnpm build, pnpm lint --quiet (0 errors) and pnpm test:unit (57/57) all pass. The same commands also pass on main.
  • Not run: test:storybook and test:e2e. Playwright couldn't download its browser build in this environment. The Playwright version didn't change.
  • icons was not changed.

Separate PRs

Severity What PR Builds/tests
Medium The release notes input of the create-version workflow is run by the shell, in design-library-create-version.yml:61 and again in component-library/scripts/version.cjs:41-44, with the bot token in the job #450 Verified in a scratch repo: on main an injected command ran, with this PR it doesn't

Low findings (notes, not fixed)

  • Icon SVGs are compiled as Vue templates (icons/scripts/build.js:14). An SVG added to icons/custom-icons/ with Vue syntax ({{ … }}, v-*, @event=, :attr=) becomes JavaScript in the published @bcc-code/icons-vue render function, and then runs in every app that renders that icon. A code owner has to merge it first. Fix: fail the build when an SVG matches \{\{|<script|\s(v-[a-zA-Z-]+|[@:#.][a-zA-Z.-]+|on[a-zA-Z]+)\s*=. None of the 7,758 current SVGs match.

Needs a human decision

Severity What Where Why there's no PR Suggested next step
Medium quill 2.0.3, GHSA-v3m3-f69x-jf25 (CVSS 6.1). It ships to consumers: BccEditor wraps primevue/editor, and Vite bundles quill into dist/vendor/quill/. component-library No fixed quill release exists. Check whether consumers' use of BccEditor is exposed to the advisory, e.g. by sanitising editor output before rendering. Watch for a quill release.
Medium glob 10.5.0 and 13.0.1 (GHSA-3g3m-2fjr-6pw4, 6.3), dev-only component-library, via firebase-tools, @vue/test-utils > js-beautify and rimraf The fix needs glob 14, a new major. Upgrade the parents when they allow it.
Medium glob 13.0.6 (GHSA-3g3m-2fjr-6pw4, 6.3), dev-only icons, via rimraf 6 Same. Same.
Medium minimatch 10.2.5 (GHSA-g3hv-75wg-m249, 6.9), dev-only component-library, via eslint, typescript-eslint, firebase-tools and glob The fix needs minimatch 11. Same.
Medium minimatch 10.2.6 (GHSA-g3hv-75wg-m249, 6.9), dev-only icons, via glob 13 > rimraf Same. Same.
Medium @opentelemetry/core 1.30.1 (GHSA-8988-4f7v-96qf, 5.3), dev-only component-library, via @google-cloud/pubsub > firebase-tools The fix needs 2.x. Upgrade firebase-tools when it moves to OpenTelemetry 2.

Secrets

No secrets found. The only gitleaks hits were design-token names in component-library/docs/foundations/TokenReference.stories.ts, which are false positives.

Not covered this run

  • OSV used its offline database, because api.osv.dev is blocked here. Advisories published after the download time are not included.
  • Storybook and e2e tests were not run (see Verification).
  • Repository settings that change the risk of the workflow finding, such as tag rulesets and the scope of the bot token, are not visible from the code.

Generated by Claude Code

…6.0 → 6.16.1 in component-library (GHSA-27r3-jxmh-p828, GHSA-6pq8-jhm2-2vcw)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011A1M8h7FjdeuJFcE7nmdSa
…ge-v8 4.1.11 → 4.1.12 in component-library (GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp)

Moves the transitive @vitest/mocker 4.1.11 → 4.1.12 with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011A1M8h7FjdeuJFcE7nmdSa
@jasverix
jasverix merged commit 05dcb89 into main Nov 13, 2026
7 checks passed
@jasverix
jasverix deleted the security/checkin-2026-11-13 branch November 13, 2026 14:31
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