Skip to content

fix: 依存関係の脆弱性を解消する - #354

Open
yugook wants to merge 6 commits into
mainfrom
fix/dependency-vulnerabilities
Open

yugook wants to merge 6 commits into
mainfrom
fix/dependency-vulnerabilities

Conversation

@yugook

@yugook yugook commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

概要

  • 本番・開発用の依存関係に残っていた脆弱性を解消しました。修正後の npm audit は18件から0件になりました。
  • .gitignore、明示的な再包含、プレビュー、通常・暗号化ZIPの動作を回帰テストで確認しました。

変更内容

  • simple-git を4.0.2へ更新し、ソースとテストを名前付き simpleGit importへ移行
  • 修正版のない braces を依存ツリーから除去するため、globby を glob と ignore に置き換え
    • 共通のファイル検索処理で、ネストしたGit除外ルール、再包含、ディレクトリ展開、ストリームによるサンプリング、シンボリックリンクの除外を維持
    • glob の同梱ライブラリを避け、lockfileの修正版を使う glob/raw を利用
  • @vscode/vsce を4.0.0へ更新し、パッケージ作成ツール経由の脆弱な依存も除去
  • brace-expansion の既存overrideを各系列の修正版へ更新し、Mocha配下の diff に修正版のoverrideを追加
  • js-yaml、shell-quote、qs などの推移的依存を更新。undici・markdown-it はツリーから除去
  • 異常な波括弧パターン、VISUAL注入、Windowsのパス表記、拡張子のないファイル、否定extglobを含む回帰テストを追加
  • Linuxの長い検索パターンに対する ENAMETOOLONG と、異常入力テストへのカバレッジ継承を修正
  • AIレビューゲートをCodexのJSON付き完了サマリーと太字のコミット表記に対応させ、未完了・不明確な結果とP0/P1指摘は引き続き承認しないよう検証
  • セキュリティレビューが有効な場合は、完了・明示的に指摘なし・コードレビューと同一コミットを必須化。既知の4項目がすべてnullの未実施状態のみCode Review単独の判定を許可し、実行中・失敗・不明確な状態や過去・同時刻の正常レビューへのフォールバックを拒否
  • !**/.config.json のようなドット付き隠しディレクトリの再包含と、その配下の除外を修正
  • **/cache.v1 のような通常のドット付きディレクトリ名を再帰展開し、ワイルドカード除外も一致したディレクトリの子孫へ適用。単体テストとZIP出力の回帰テストを追加
  • 検索のI/Oを非同期化・キャッシュし、globのコールバックからI/Oを分離。検索中のreaddir/lstatエラーをAbortControllerと元エラー保持で伝播し、停止・無言のファイル欠落を防止
  • deep をパターンの静的基準ディレクトリから数えるよう修正。混在・brace・絶対パス・親パスの回帰テストを追加
  • 共有Git生成処理でauthor/committerの名前・メール・日時6変数のみ継承。実際のコミット・注釈付きタグと、VISUAL等の拒否をテスト
  • 未使用オプション・不要な動的import/型分岐を整理し、SBOM説明を更新
  • エクスポートと除外ルールのプレビューを選択したルート内に制限。親パス・絶対パス・brace/extglob・シンボリックリンク/ジャンクションを検証し、収録前は正規化パスとrealpathの両方で判定
  • 通常ZIP、単一ルート/ワークスペースの暗号化ZIP、ホバー・定義ジャンプ・ビューに対する外部ファイル排除の回帰テストを追加
  • CHANGELOGを更新

テスト

ローカルはNode.js 24.22.0 / npm 10.9.0のWindows一時コピーで検証しました。UbuntuでもGitHub Actions(Node.js 24.x / npm 10.9.0)のCI・Coverage・CodeQL・VSIX検証が成功しました。

  • npm run check-types
  • npm run lint
  • npm run test:unit(Windows: 63件成功、Ubuntu: CI成功)
  • npm run coverage:unit(Windows・Ubuntu CIで成功)
  • npm test(VS Code 1.143.0、60件成功。Windows対象外のPOSIX権限テスト1件は保留)
  • npm run package(本番ビルド・SBOM生成)
  • npm run package:verify(VSIX作成成功)
  • npm audit --json --package-lock-only --ignore-scripts(開発用を含めて0件)
  • npm audit signatures --omit=dev(97パッケージの署名検証成功)
  • ネスト・カンマ連鎖・二次時間の波括弧ペイロードがクラッシュせず終了することを確認
  • VISUAL注入の拒否と通常のGit操作を確認
  • git diff --check

レビューで維持した仕様

  • !**/config のような名前付きディレクトリの明示的再包含は、選択したルート内で、その配下の .env や鍵ファイルも含みます。README・アーキテクチャ・既存テストが定める「再包含は組み込み除外より優先」を維持し、READMEの日英説明とZIP出力テストを追加しました。意図したファイルだけを戻す場合は具体的なファイルパスを指定します。

  • GIT_CONFIG_GLOBAL など実行可能な設定を変える環境変数は引き続き許可しません。今回復元したのはGitのidentity 6変数のみです。変更点をCHANGELOGに記載しました。

  • 存在しないパスは不一致として完了し、実際の検索I/O失敗は元のエラーで拒否します。長い異常パターンは正常完了または捕捉可能な ENAMETOOLONG となり、停止・プロセスクラッシュを起こさないことを検証しました。

  • 汎用検索APIの親パス・絶対パス対応は維持し、エクスポート・プレビューの呼び出し側でルート制限を必須にしています。外部パスの再包含は無視します。

補足

simple-gitとパッケージ作成ツールを更新し、修正版のないbracesを検索処理から除去する。除外・再包含・シンボリックリンクの回帰テストを追加し、開発用を含むnpm auditの検出を0件にする。
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-21T13:04:42.722572Z 0e220dd New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

長い検索パターンのENAMETOOLONGを非ディレクトリとして扱い、異常入力テストへのカバレッジ継承を防ぐ。

Codexの完了サマリーと太字のコミット表記に対応し、実行中・不明確な結果や優先度付きの指摘で誤って承認しない回帰テストを追加する。

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d73a94e3aa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/ai-review-gate.cjs Outdated
Comment thread src/globFiles.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bc45c6f3f5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/globFiles.ts Outdated

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