fix(deps): update picomatch to version 4.0.7 - #347
shinagawa-web wants to merge 1 commit into
Conversation
picomatch 更新 PR レビュー1. ライブラリの概要picomatch は「Blazing fast and accurate glob matcher」を謳う、依存ゼロの glob→正規表現コンパイラ。braces / extglob / POSIX bracket / 正規表現拡張までサポートする、chokidar・vite・vitest・micromatch などが内部で使うマッチングエンジン。 2. バージョン情報このPRはコード上の直接依存ではなく
npm registry ( 3. 変更スコープの確認
注記: 4. ライブラリの依存関係picomatch はいずれも他パッケージの推移的依存として存在し、直接の親は以下の通り:
依存されている側で、picomatch自体には依存パッケージなし(no dependencies を謳う通り)。 5. ライブラリの使用箇所とバージョン情報
6. 変更内容の要約今回のバージョン間で修正された既知脆弱性は2件(PR概要欄の「security vulnerabilities」という記述と一致、2026-03-23公開):
4.0.4以降さらに以下の修正が入っています(機能修正、CVEとは別):
特に4.0.5の「risky extglobの書き換えで全分岐を保持」は、4.0.4のReDoS修正が一部の正当なマッチを取りこぼす副作用(正しさの後退)を起こしていた可能性を示唆しており、4.0.4だけに留めず4.0.7まで上げた今回のPRの判断は妥当です。 7. コード・設定の更新7-1. APIや仕様変更に伴うコード修正API シグネチャの変更はありません( 7-2. バージョン整合性の確認picomatch を参照する全 追加観点: ランタイム default 挙動の変化今回は major version 更新ではなく、feature flag のデフォルト反転のようなものはありません。ただし「同一入力に対する出力が暗黙に変わる」という点で、CVE修正自体が2つの実質的な default 挙動変化にあたるため、明示的に検証しました。 1. default挙動が変わった箇所の列挙
2. 旧defaultに依存するコードパターンの定義(grep可能な形)
3. 上記パターンでの実際のgrep結果 判定: 実質0件。この2つの旧default依存パターンに該当する箇所はコードベース内に存在しません。 4. 「flag未設定=暗黙に旧defaultに依存」箇所の網羅チェック(非対称チェック回避) react-router #9194 の教訓(明示的にflagを設定していた箇所だけ検証し、未設定で暗黙に旧defaultへ依存していた箇所を見逃した)を踏まえ、以下も確認しました:
結論として、「flag未設定で暗黙に旧defaultへ依存」というケースに該当する箇所は見つかりませんでした。 8. 興味深い更新特筆すべき新機能はなし。今回はセキュリティパッチ+内部正しさ修正が中心です。 9. 過去の失敗の調査本リポジトリで セクション間整合性チェック
総合評価LGTM(承認推奨)。CVE-2026-33671(High, ReDoS)と CVE-2026-33672(Moderate, プロトタイプ汚染由来の誤マッチ)を修正するセキュリティパッチであり、直接依存ではなく開発ツールの推移的依存のみ、かつアプリケーションコードは影響を受ける構文(extglob量指定子・POSIXブラケットクラス)を一切使用していないため、マージによる回帰リスクは極めて低いと判断します。 🤖 Generated with Claude Code |
概要
picomatchを全経路で脆弱性修正済みバージョンに更新(npm update picomatch)package-lock.jsonのみの変更、package.jsonは無変更対象アラート
+()/*())を含むパターンで catastrophic backtracking を引き起こす ReDoS 脆弱性(severity: high, CVSS 7.5)2.3.2/3.0.2/4.0.4以降変更内容
eslint-plugin-strict-dependencies→micromatchnpm-run-all2tsup→tinyglobbyvitest/viteexamples/vite,examples/vite-react-openapiいずれも devDependencies 経由の間接依存(
scope: runtime表記だが実行時コードには到達しない)。Reachability Assessment
本リポジトリでは
picomatchを直接利用しておらず、ビルドツール(vite/vitest/tsup/eslint等)の内部依存としてのみ使用。ユーザー入力由来のglobパターンを渡す箇所は存在しないため、実際の悪用可能性は低い。念のため既存の推奨バージョンに追従。