Skip to content

fix(deps): nanoid の high 脆弱性 (GHSA-2v37-7h3g-55p8) を override で塞ぐ — dependabot の自動更新が失敗し続けている #270

Description

@shinyaoguri

P3 の作業中に、dependabot の security update が失敗し続けていることに気づいたので起票する (本題とは無関係)。

現象

Dependabot Updates ワークフローの npm_and_yarn in /. for nanoid が失敗する。少なくとも 2 回連続 (31562747532 / 31900302356)。

dependabot 自身がログで原因と対処を書いている:

To resolve this, update postcss to a release that depends on a non-vulnerable nanoid, or add an override/resolution pinning nanoid to a non-vulnerable version.

つまり dependabot には直せない (nanoid は直接依存ではなく、上流の postcss が古い nanoid を要求しているため) ので、毎回エラーで終わっている。

脆弱性

項目
GHSA GHSA-2v37-7h3g-55p8
severity high
概要 nanoid: custom generators can loop indefinitely when size is zero
影響範囲 < 3.3.18
初回修正版 3.3.18

依存経路

typedcode@1.1.0
`-- @typedcode/editor@1.0.0
  `-- vite@8.1.3
    `-- postcss@8.5.16
      `-- nanoid@3.3.15

ビルドツールチェーン (vite → postcss) 経由の devDependency なので、本番バンドルには入らない。実行時の攻撃面ではなく、ビルド環境の問題。

対応案

このリポジトリは既に overrides で同種の問題を処理している (root package.json):

"overrides": {
  "vite": "^8.0.5",
  "dompurify": "^3.4.5",
  "ws": "^8.20.1",
  "uuid": "^11.1.1",
  "undici": "^7.29.0"
}

直近の #259 (undici を override で 7.29.0 に上げ、dead な rollup override を外す) がまさに同じパターン。ここに 1 行足すだけで済む:

"nanoid": "^3.3.18"

3.3.18 は公開済み (3.3.16 / 3.3.17 / 3.3.18 が入手可能)。postcss の要求は ^3.3.x なので semver 的に互換で、メジャーを跨がない。

あわせて #259 の方針に倣い、既に不要になった override が無いかも点検したい (override は放置すると dead になって実態と乖離する)。

関連

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    pkg:repoリポジトリ横断 (docs/CI/依存)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions