Skip to content

依存パッケージのセキュリティアップデート #1211

Description

@hakatashi

背景

PR #1209 でセキュリティ脆弱性対応の依存アップデートを実施したが、以下のパッケージは破壊的変更を伴うため見送った。今後着手しやすいよう一覧にまとめる。

未対応のアップデート

🔴 Critical(要優先対応)

@fastify/express v2 → v4(認証バイパス脆弱性) ✅ PR #1213 で対応済み

  • 脆弱性: GHSA-g6q3-96cp-5r5m, GHSA-hrwm-hgmj-7p9c, GHSA-6hw5-45gm-fj88
  • URL エンコーディングや duplicate slash を使った認証バイパスが可能
  • 条件: fastify v5 へのアップグレードが前提(@fastify/express v4 は fastify v5 専用)
  • 対応: 下記 fastify v5 アップグレードとセットで実施すること

protobufjs(任意コード実行・DoS)

  • 修正版が存在しない(fixAvailable: false
  • 間接依存のため直接制御できない

🟠 High(fastify v5 アップグレードで一括解決)

fastify v4 → v5 ✅ PR #1213 で対応済み

🟠 High(個別対応)

cloudinary v1 → v2 ✅ PR #1217 で対応済み

  • 直接依存 (cloudinary: ^1.31.0)
  • v2 では API が大幅変更。使用箇所: cloudinary/ ディレクトリ
  • 参考: https://cloudinary.com/documentation/node_migration_guide
  • 注: cloudinary v2 は v1 の cloudinary.v2.* API を後方互換として維持しているため、コード変更なし

puppeteer v18 → v25 ✅ PR #1217 で対応済み

  • 直接依存 (puppeteer: ^18.0.5)
  • 使用箇所: map-guessr/, nmpz/ など
  • 注: v25 で page.setContent()waitUntil: 'networkidle0' が廃止されたため map-guessr/index.ts を修正

dockerode v3 → v5

  • 直接依存 (dockerode: ^3.3.4)
  • 使用箇所: procon/ など

google-tts-api v2 → (最新)

  • 直接依存 (google-tts-api: ^2.0.2)
  • isSemVerMajor: true の更新あり

japanese v1 → v1.1.0 (isSemVerMajor扱い)

  • 直接依存 (japanese: ^1.2.0)

sqlite3 v5 → v6

  • 直接依存 (sqlite3: ^5.1.7)
  • Node.js v22 環境での better-sqlite3 ビルド問題あり(要確認)

🟡 Moderate(個別対応)

firebase-admin v13 → v14

@octokit/webhooks v10 → v14 ✅ PR #1216 で対応済み

  • 直接依存 (@octokit/webhooks: ^10.9.2)

ts-trueskill v4 → v5 ✅ PR #1212 で対応済み

scrape-it v5 → v6 ✅ PR #1212 で対応済み

microsoft-cognitiveservices-speech-sdk → v1.13.1+

  • 直接依存 (microsoft-cognitiveservices-speech-sdk: ^1.23.0)

download v8 → v3 (isSemVerMajor扱い)

  • 直接依存 (download: ^8.0.0)

aws-sdk v2 → v3(EOL)

  • 直接依存 (aws-sdk: ^2.1354.0)
  • AWS SDK v2 は EOL

🔴 修正不可(固定対応が必要)

パッケージ 重要度 理由
@slack/interactive-messages high 修正版なし・非推奨
amae-koromo high GitHub 依存のため制御不可
axios high 修正版なし
mackerel moderate 修正版なし

推奨する対応順序

  1. fastify v5 + @fastify/express v4 ✅ PR fix: fastify v5へのアップグレードと@fastify/expressのCritical脆弱性を修正 #1213 で対応済み
  2. firebase-admin v14 — v13.10.0 への更新(PR fix: セキュリティ脆弱性対応 - firebase-admin, pm2, @octokit/webhooks アップグレード #1216)で critical 脆弱性は解消済み。v14 への完全移行は引き続き対応
  3. cloudinary v2 ✅ PR fix: cloudinary v2・puppeteer v25へのセキュリティアップデート (#1211) #1217 で対応済み
  4. puppeteer v25 ✅ PR fix: cloudinary v2・puppeteer v25へのセキュリティアップデート (#1211) #1217 で対応済み
  5. その他は都度対応

注意事項

  • npm audit fix を実行すると better-sqlite3 のビルドが Node.js v22 で失敗するため、パッケージは個別に手動更新すること
  • npm audit fix --force は使用しないこと(大量の破壊的変更が一括適用される)

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency file

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions