Skip to content

pnpm audit の脆弱性を直す(メジャーを上げずに直せる分) - #89

Draft
sasagar wants to merge 2 commits into
chore/pnpm-12.15.0from
fix/audit-2026-10
Draft

sasagar wants to merge 2 commits into
chore/pnpm-12.15.0from
fix/audit-2026-10

Conversation

@sasagar

@sasagar sasagar commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

#88(pnpm 12.15.0)の上に重ねる PR です。pnpm audit の脆弱性のうち、メジャーを上げずに直せる分を直します。公開しているパッケージの dependencies(elkjs・commander・hast まわり)には脆弱性はなく、今回の変更はすべて開発・ビルド・テスト用の依存です。

上げた部品

直接の依存(同じメジャーの中)

  • vue 3.5.40 → 3.5.44(packages/vue。@vue/test-utils の @vue/server-renderer が直る)
  • obsidian 1.13.1 → 1.14.4(packages/obsidian。moment 2.29.4 → 2.31.0)
  • ovsx 1.0.2 → 1.3.0(follow-redirects がなくなる)、@vscode/vsce の指定 ^3.6.0 → ^3.9.2(入っている版は前から 3.9.2)
  • typedoc 0.28.19 → 0.28.20
  • vite 7.3.6 → 7.3.7(examples/playground)

間接の依存(範囲内で再解決)

  • astro(packages/astro の peer として入るもの)7.1.6 → 7.4.2 — devalue 6.0.3、sharp 0.35.5、svgo 4.1.0、zod 4.6.7、vite 8.3.5、smol-toml 1.9.1、http-cache-semantics 4.3.0
  • undici 7.29.0 → 7.30.1、fast-uri 3.1.4 → 3.1.9、qs 6.15.3 → 6.16.1(@vscode/vsce 経由)
  • js-yaml 3.15.2 / 4.3.2(@changesets/cli 経由)、markdown-it 14.3.3・brace-expansion 5.0.12(typedoc 経由)、brace-expansion 2.1.7(@vue/test-utils 経由)
  • nanoid 3.3.20、source-map-js 1.2.2(vitest の vite 経由)
  • @azure/msal-node 5.4.3 → 6.0.1(@azure/identity の範囲の中で。下の残りを参照)

overrides(pnpm-workspace.yaml)

  • tinypool@^2: ^2.1.2 — oxfmt 0.45 が tinypool を 2.1.0 にぴったり固定しているため(→ 2.2.0)

件数

  • 前: 93 件(critical 4 / high 39 / moderate 39 / low 11)
  • 後: 17 件(critical 3 / high 4 / moderate 9 / low 1)

残ったもの(メジャーを上げないと直らない)

部品 件数 経路 直すには
vitest 2.1.9 critical 1 / moderate 1 ルートの devDependency vitest ^2.1.5 vitest 3.2.6 以上(moderate は 4.1.11 以上)
tinypool 1.1.1 critical 2 vitest 2 → tinypool ^1 vitest を上げる(tinypool 2.1.2 以上)
@vitest/mocker 2.1.9 moderate 2 vitest 2 vitest 4.1.12 以上
vite 5.4.21・esbuild 0.21.5 high 2 / moderate 4 / low 1 vitest 2 → @vitest/mocker → vite ^5 vite 6.4.4 以上(vitest を上げる)
happy-dom 20.11.1 high 1 packages/editor・react・vue・vscode の devDependency ^20 happy-dom 21.0.4 以上
@azure/msal-node 6.0.1 high 1 astro → unstorage → @azure/identity 4.14.0(^6.0.0) msal-node 7.1.0 以上(@azure/identity の対応待ち)

critical はすべて vitest 2 系(テストのときだけ)によるものです。vitest を 3 か 4 に上げる PR は別に分けた方がよいと考えます。

確かめたこと(CI と同じ順)

  • pnpm lint: エラー 0(警告だけ。oxlint の版は変えていません)
  • pnpm format:check: 成功
  • pnpm build: 成功
  • pnpm check:tsdoc: 成功
  • pnpm typecheck: 成功
  • pnpm test: すべて成功(core 393、cli 29 と smoke、react 9、vue 8、editor 22、astro 4、rehype 14、vscode・obsidian の smoke)
  • examples/playground の vite build: 成功
  • packages/vscode の pnpm package(vsce package): 成功
  • pnpm peers check: 問題なし
  • build で書き換わる packages/obsidian/manifest.json はコミットに入れていません

注意

  • ci は main 向けの PR でだけ動くので、この PR(base が chore/pnpm-12.15.0)では動きません。
  • packages/vscode/package.json を変えているので、main にマージすると publish-vscode が動きます(version が変わっていなければ出さない作りです)。

追記:vitest と happy-dom を上げた(3781d15)

  • vitest 2.1.9 → 5.0.5(ルートの devDependency ^5.0.5。@vitest/* はこれに付いてくる版にそろう)
  • happy-dom 20.11.1 → 21.0.4(packages/editor・react・vue・vscode の devDependency を ^21.0.4 に)
  • vitest.config.ts(7 つ)は書き換え不要だった(include と environment だけで、5 系でも同じ書き方)
  • これで vitest・@vitest/mocker・tinypool 1.x・vite 5・esbuild 0.21・happy-dom の指摘が消えた
low moderate high critical 計
上げる前 1 9 4 3 17
上げた後 0 0 1 0 1

残り

  • @azure/msal-node 6.0.1(high 1):astro → unstorage → @azure/identity と @vscode/vsce・ovsx → @azure/identity の経路。7.1.0 以上が要り、@azure/identity の対応待ち(今回は手を付けていない)

確かめたこと(vitest 5.0.5 / happy-dom 21.0.4 で)

  • pnpm lint(エラー 0、警告は前からのもの)/ pnpm format:check / pnpm build / pnpm check:tsdoc / pnpm typecheck 通る
  • pnpm test:すべて通る(core 393、cli 29 と smoke、react 9、vue 8、editor 22、astro 4、rehype 14、vscode・obsidian の smoke。前と同じ件数)
  • examples/playground の vite build、pnpm install --frozen-lockfile、pnpm peers check 問題なし
  • vitest 5 は Node ^22.12.0 || ^24 || >=26 が要る。テストを回す CI は Node 24 なので合っている
  • build で書き換わる packages/obsidian/manifest.json は今回もコミットに入れていない

🤖 Generated with Claude Code

https://claude.ai/code/session_01QDZzA8fkAc11hCSdTfZeXh

sasagar and others added 2 commits October 26, 2026 01:38
直接の依存(同じメジャーの中)
- vue 3.5.40 → 3.5.44(@vue/server-renderer)
- obsidian 1.13.1 → 1.14.4(moment 2.31.0)
- @vscode/vsce 3.6 → 3.9.2、ovsx 1.0.2 → 1.3.0
- typedoc 0.28.19 → 0.28.20
- vite(examples/playground)7.3.6 → 7.3.7

間接の依存(範囲内で再解決)
- astro(packages/astro の peer)7.1.6 → 7.4.2(devalue・sharp・svgo・zod・vite・smol-toml・http-cache-semantics)
- undici、fast-uri、qs、js-yaml、markdown-it、brace-expansion、nanoid、source-map-js など

overrides
- oxfmt が tinypool を 2.1.0 に固定しているため、tinypool@^2 を ^2.1.2 にする

pnpm audit: 93 件 → 17 件(critical 4 → 3、high 39 → 4)
残りは vitest 2(→ 3 以上)、happy-dom 20(→ 21)、@azure/msal-node 6(→ 7)で、メジャーを上げないと直らない

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QDZzA8fkAc11hCSdTfZeXh
vitest 2 系に残っていた critical(vitest・tinypool)と @vitest/mocker・
vite・esbuild の指摘、happy-dom 20 系の high(GHSA: CVE-2026-33943 の
不完全な修正)を解消する。設定ファイルは書き換え不要だった。
pnpm audit: 17 件 → 1 件(残りは @azure/msal-node)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QDZzA8fkAc11hCSdTfZeXh

This branch has not been deployed

No deployments
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