Skip to content

fix(deps): undici を override で 7.29.0 に上げ、dead な rollup override を外す - #259

Merged
shinyaoguri merged 2 commits into
mainfrom
fix/undici-override
Aug 5, 2026
Merged

fix(deps): undici を override で 7.29.0 に上げ、dead な rollup override を外す#259
shinyaoguri merged 2 commits into
mainfrom
fix/undici-override

Conversation

@shinyaoguri

Copy link
Copy Markdown
Owner

目的

Dependabot の security update (undici) が failure で終わり続けていた。自動更新が詰まっており、放置すると脆弱性が残る。

原因は依存の経路にある:

wrangler 4.115.0 → miniflare 4.20260722.1 → undici 7.28.0 (脆弱)

パッチ版は 7.29.0 だが、Dependabot が見つけた唯一の更新パスが wrangler を 4.115.0 → 4.35.0 へダウングレードするものだったため、自ら中止していた。

wrangler を上げても解決しない。 最新の 4.119.0 が要求する miniflare 5.20260801.0-alpha も undici を 7.28.0 で固定している (確認済み)。そのため Dependabot 自身が提示するもう一方の案 — override による pin — を採る。

影響度

対象は 5 件 (GHSA-4cwx-7wf7-3272 high / 他 medium 4)。いずれも scope: development で、lockfile 上も dev=true の 1 エントリのみ。undici は wrangler・miniflare のローカル開発サーバとデプロイ用ツールにしか入っておらず、Cloudflare Workers の本番ランタイムには配布されない (Workers は自前の fetch 実装を使う)。実際の影響範囲はローカルの wrangler dev と CI の e2e 環境。

変更点

  • root package.jsonoverrides"undici": "^7.29.0" を追加
    • このリポは既に vite / dompurify / ws / uuid で同じ手を使っており、その延長
  • overrides から "rollup": "^4.59.0"削除
    • #256 で editor から vite-plugin-top-level-await (と、そのためだけの rollup 依存) を落とした結果、lockfile 上の rollup エントリは 0 件・依存元も 0 件で dead になった
  • package-lock.jsonundici 7.28.0 → 7.29.0 の 3 行のみ。他のバージョン変動・パッケージの増減なし

2 つの override 変更を 1 PR にまとめている。同じ 7 行のオブジェクトを触るため分割すると lockfile が衝突するのと、rollup の除去は #256 の直接の帰結で文脈が同じため。コミットは分けていない (どちらも 1 行の削除/追加)。

確認方法

検証 結果
node_modules/undici の解決先 7.29.0
npm audit found 0 vulnerabilities
rollup が lockfile に復活していないか エントリ 0 件
npm run lint exit 0
npm run typecheck exit 0
ユニットテスト (全 workspace) 608 passed / 3 skipped
npm run build exit 0
npm run test -w @typedcode/e2e 17 passed
npm run test:build -w @typedcode/e2e 1 passed

e2e が本命の検証。 miniflare は undici を 7.28.0 で厳密指定しているため、7.29.0 への差し替えは未テストの組み合わせになる。実際に wrangler dev (= miniflare) を起動する e2e が通ることを、この override を入れてよいかの判断材料にした。

残る懸念

miniflare 側が undici を上げるまで、この override は「上流が想定していない組み合わせ」であり続ける。壊れた場合は e2e が CI で落ちるので気付ける。上流が追いついたら override を外せる。

🤖 Generated with Claude Code

## 目的
Dependabot の security update (undici) が failure で終わり続けていた。原因は
自動更新の詰まりで、放置すると脆弱性が残る。

`wrangler 4.115.0` → `miniflare 4.20260722.1` → `undici 7.28.0` の経路で
脆弱な undici が入るが、Dependabot が見つけた唯一の更新パスが wrangler を
4.115.0 → 4.35.0 へ**ダウングレード**するものだったため、自ら中止していた。

wrangler を上げても解決しない: 最新の 4.119.0 が要求する
`miniflare 5.20260801.0-alpha` も undici を `7.28.0` で固定している。
そのため Dependabot 自身が提示するもう一方の案 (override による pin) を採る。

対象は 5 件 (GHSA-4cwx-7wf7-3272 high / 他 medium 4)。いずれも
`scope: development` で、undici は wrangler・miniflare のローカル開発サーバと
デプロイ用ツールにしか入らない (Cloudflare Workers の本番ランタイムには
配布されない)。影響範囲はローカルの `wrangler dev` と CI の e2e 環境。

## 変更点
- root `package.json` の `overrides` に `"undici": "^7.29.0"` を追加。
  このリポは既に vite / dompurify / ws / uuid で同じ手を使っており、その延長
- `overrides` から `"rollup": "^4.59.0"` を削除。#256 で editor から
  `vite-plugin-top-level-await` (と、そのためだけの rollup 依存) を落とした
  結果、lockfile 上の rollup エントリは 0 件・依存元も 0 件で dead になった
- `package-lock.json` は undici 7.28.0 → 7.29.0 の 3 行のみ (他のバージョン
  変動・パッケージの増減なし)

## 確認方法
- `npm install` 後、`node_modules/undici` が **7.29.0** に解決されること、
  `npm audit` が `found 0 vulnerabilities` を返すことを確認
- rollup が lockfile に復活していないこと (エントリ 0 件) を確認
- `npm run lint` exit 0 / `npm run typecheck` exit 0
- ユニットテスト 608 passed / 3 skipped (全 workspace)
- `npm run build` exit 0
- **`npm run test -w @typedcode/e2e` 17 passed** — miniflare は undici を
  `7.28.0` で厳密指定しているため未テストの組み合わせになる。実際に
  `wrangler dev` を起動する e2e が通ることをこの override の可否の判断材料に
  した
- `npm run test:build -w @typedcode/e2e` 1 passed (本番ビルドのスモーク)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@shinyaoguri shinyaoguri added dependencies Pull requests that update a dependency file security セキュリティ (XSS/DoS/偽造等) labels Aug 5, 2026
@github-actions github-actions Bot added the pkg:repo リポジトリ横断 (docs/CI/依存) label Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

🚀 Preview Deployment

Name URL
Preview https://bb125ef1.typedcode.pages.dev

Deployed from commit 40d0486
API: staging Workers

@shinyaoguri
shinyaoguri merged commit 45a647f into main Aug 5, 2026
8 checks passed
@shinyaoguri
shinyaoguri deleted the fix/undici-override branch August 5, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file pkg:repo リポジトリ横断 (docs/CI/依存) security セキュリティ (XSS/DoS/偽造等)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant