JavaScript sha.js の脆弱性 CVE-2025-9288 が FIX:無数のアプリへのハッシュ操作の可能性

14 Million-Download SHA JavaScript Library Exposes Users to Hash Manipulation Attacks

2025/08/25 gbhackers — 広く使用されている sha.js npm パッケージに、深刻なセキュリティ脆弱性 CVE-2025-9288 が発見された。この脆弱性により、数百万ものアプリケーションが高度なハッシュ操作攻撃にさらされ、暗号演算が侵害されることで、機密システムへの不正アクセスの可能性が生じている。影響を受けるのは、sha.js ライブラリのバージョン 2.4.11 以下であり、JavaScript エコシステム全体で 1,400 万回以上もダウンロードされているものだ。

脆弱性の詳細と攻撃ベクター

この欠陥は、sha.js ライブラリのハッシュ計算メカニズムにおける、入力値検証の不備に起因する。巧妙に作成された JSON 文字列化可能な入力を通じて、攻撃者はハッシュ状態を操作できるという。

CVE DetailsInformation
CVE IDCVE-2025-9288
SeverityCritical
CVSS v4 ScoreCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:H/SC:H/SI:H/SA:N
Affected Packagesha.js (npm)
Affected Versions≤2.4.11

セキュリティ研究者 ChALkeR によると、この脆弱性を悪用する攻撃者は、ハッシュ状態の巻き戻し/タグ付きハッシュのタグなしへの変換/セキュリティ制御を回避するハッシュ衝突の生成などを可能にするという。

この脆弱性には、主に3つの攻撃シナリオがある。

  1. 負の長さを持つオブジェクトを使用する攻撃者が、ハッシュ状態を巻き戻しをトリガーし、暗号状態を以前の値に戻す手法。
  2. 特別に細工されたオブジェクトが、異なる入力データに対して同一のハッシュ出力を生成し、危険な衝突シナリオを作り出す誤計算攻撃が可能。
  3. 不正な長さの値が提供されることで、ライブラリが無期限にハングアップし、サービス拒否攻撃が可能となる。

この脆弱性には CVSS v4 ベース・スコア 9.1:Critical が割り当てられ、脆弱なシステムへの深刻な影響が懸念されている。この攻撃ベクターは、高度な複雑性を必要とするネットワーク接続経由で実行されるが、ユーザー操作は不要であり、自動化された攻撃シナリオにおいて特に危険である。

緩和策と推奨対応

すでに sha.js のメンテナは、この脆弱性をバージョン 2.4.12 で修正し、特定された攻撃ベクターを防止する包括的な入力タイプ検証を追加した。CVE-2025-9288 の影響を受けるライブラリを使用している組織は、パッチ適用済みバージョンへと速やかに更新し、悪意のハッシュ操作にさらされた可能性のあるシステムについて、徹底的なセキュリティ評価を実施する必要がある。

この発見は、暗号ライブラリにおける堅牢な入力検証の重要性を強調する。それに加えて、浮き彫りにするのは、広く採用されている OSS コンポーネントにおいて、些細な実装上の見落としが、連鎖的なセキュリティ・リスクを生む可能性である。