dependabot PR (#287 / #288 / #289) のマージ対応中に、Dependabot Updates の security update が sharp で失敗し続けていることに気づいたので起票する (本題とは無関係)。#270 (nanoid) とまったく同じ「上流が脆弱版を exact pin していて dependabot 単独では解けない」型。
現象
npm_and_yarn in /. for sharp - Update が failure。直近だけで 2 回 (34377916785 / 34378011723)。
脆弱性
| 項目 |
値 |
| alert |
#61 |
| GHSA |
GHSA-rgj7-g3m4-5g8c |
| severity |
high |
| 概要 |
sharp: Vulnerabilities in libheif (GHSA-g89c-p67h-r497 / GHSA-2jg2-4ch7-h545) |
| 影響範囲 |
< 0.35.4 |
| 初回修正版 |
0.35.4 (公開済み・現在の latest) |
| scope |
development |
依存経路と、dependabot が解けない理由
typedcode@1.1.0
`-- wrangler@4.127.1 (dev)
`-- miniflare@5.20260828.0-alpha
`-- sharp@0.35.2 <- exact pin
miniflare は sharp を 範囲ではなく exact 0.35.2 で要求している。最新の miniflare@5.20260908.0-alpha を見ても依然 0.35.2 なので、wrangler / miniflare を上げても解消しない (#288 で wrangler 4.115.0 → 4.127.1 に上げた後も alert は open のまま)。dependabot には手が無く、毎月 failure で終わる。
影響
- dev 依存のみ (
wrangler dev / miniflare のローカル実行時)。本番バンドル・Workers のデプロイ成果物には入らない
- 脆弱性は libheif の HEIF/AVIF デコード。TypedCode は画像を一切デコードしないので、この利用形態では到達しない見込み
- 実害よりも衛生の問題 (high alert が open のまま、Dependabot Updates が毎回赤、
npm audit が赤)
対応案
root package.json の overrides に 1 行足す:
0.35.2 → 0.35.4 は patch で API 互換。sharp はネイティブバイナリを持つので、適用後は npm ci が optionalDependencies (@img/sharp-*) を正しく取り直すことと、npm run dev:workers / e2e が動くことを確認する。
なお #270 のトリアージでは override より lock 更新 (案 B) が推奨されているが、今回は lock 更新では解けない (miniflare の要求が exact のため、npm update sharp では 0.35.2 から動かない)。override が唯一の手段になる。
関連
🤖 Assisted by Claude Code
dependabot PR (#287 / #288 / #289) のマージ対応中に、
Dependabot Updatesの security update が sharp で失敗し続けていることに気づいたので起票する (本題とは無関係)。#270 (nanoid) とまったく同じ「上流が脆弱版を exact pin していて dependabot 単独では解けない」型。現象
npm_and_yarn in /. for sharp - Updateが failure。直近だけで 2 回 (34377916785/34378011723)。脆弱性
GHSA-rgj7-g3m4-5g8cGHSA-g89c-p67h-r497/GHSA-2jg2-4ch7-h545)< 0.35.40.35.4(公開済み・現在の latest)依存経路と、dependabot が解けない理由
miniflare は sharp を 範囲ではなく exact
0.35.2で要求している。最新のminiflare@5.20260908.0-alphaを見ても依然0.35.2なので、wrangler / miniflare を上げても解消しない (#288 で wrangler 4.115.0 → 4.127.1 に上げた後も alert は open のまま)。dependabot には手が無く、毎月 failure で終わる。影響
wrangler dev/miniflareのローカル実行時)。本番バンドル・Workers のデプロイ成果物には入らないnpm auditが赤)対応案
root
package.jsonのoverridesに 1 行足す:0.35.2 → 0.35.4は patch で API 互換。sharp はネイティブバイナリを持つので、適用後はnpm ciが optionalDependencies (@img/sharp-*) を正しく取り直すことと、npm run dev:workers/ e2e が動くことを確認する。なお #270 のトリアージでは override より lock 更新 (案 B) が推奨されているが、今回は lock 更新では解けない (miniflare の要求が exact のため、
npm update sharpでは 0.35.2 から動かない)。override が唯一の手段になる。関連
package-lock.jsonを触るので同じ PR に同乗させると lock 衝突が 1 回で済む。fix(deps): nanoid の high 脆弱性 (GHSA-2v37-7h3g-55p8) を override で塞ぐ — dependabot の自動更新が失敗し続けている #270 のトリアージが挙げている dead override (uuid) の掃除と chore: 鮮度チェックの検知結果 (自動) #261 の dead stub devDep も同乗候補🤖 Assisted by Claude Code