つみかさね

CVE-2026-33891

High(7.5)

CVE-2026-33891 — node-forge BigInteger.modInverse() 無限ループ DoS

公開日: 2026-03-29データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
node-forge (forge)Digital Bazaarv1.4.0 より前
CVEnode-forgeDoSInfinite Loopnpm

概要

node-forge(npm パッケージ名: forge)は JavaScript で 実装 された TLS、暗号、PKI ツールキット であり、ブラウザ 環境 および Node.js 環境 の 両方 で 広く 利用 されて います。この ライブラリ の バージョン 1.4.0 より 前 に おいて、BigInteger.modInverse() メソッド に 深刻 な サービス拒否(DoS)脆弱性 が 存在 します。

この 脆弱性 は CWE-835(Loop with Unreachable Exit Condition、無限ループ)に 分類 されます。modInverse() 関数 が ゼロ 値 を 引数 として 受け取った 場合、内部 で 使用 されて いる 拡張ユークリッド互除法(Extended Euclidean Algorithm)の 終了 条件 に 到達 する こと が できず、無限ループ に 陥ります。

攻撃者 が 意図的 に ゼロ 値 を 含む 入力 を 送信 する こと で、対象 の サーバー または アプリケーション の CPU 使用率 が 100% に 達し、サービス が 応答 不能 に なります。この 攻撃 は ネットワーク 経由 で リモート から 実行 可能 であり、認証 や 特別 な 権限 は 不要 です。攻撃 の 複雑性 も 低い ため、容易 に 悪用 される 可能性 が あります。

node-forge は npm レジストリ で 週間 数百万 ダウンロード を 記録 する 人気 パッケージ であり、多数 の Web アプリケーション や サーバーサイド アプリケーション が この ライブラリ に 依存 して います。そのため 影響 範囲 は 非常 に 広い と 考えられます。

暗号演算 を 行う ライブラリ に おける 入力値 の バリデーション 不備 は、可用性 に 対する 重大 な 脅威 と なります。特に TLS ハンドシェイク や 証明書 検証 など の クリティカル な 処理 で この ライブラリ を 使用 して いる 場合、サービス 全体 の 停止 に つながる リスク が あります。

該当 バージョン を 使用 して いる プロジェクト で は、速やか に v1.4.0 以降 へ の アップデート を 実施 する こと が 強く 推奨 されます。アップデート が 即座 に 困難 な 場合 は、modInverse() に 渡す 値 が ゼロ で ない こと を 事前 に 検証 する 入力 チェック を 実装 する こと で、暫定的 な 回避 が 可能 です。

CVSSベクトル

項目
CVSSスコア7.5
深刻度High
攻撃元ネットワーク
攻撃条件の複雑さ
必要な権限不要
ユーザー操作不要
CWECWE-835 (Loop with Unreachable Exit Condition)

影響を受けるソフトウェア

製品ベンダー影響バージョン
node-forge (forge)Digital Bazaarv1.4.0 より前 の 全バージョン

修正バージョンと回避策

  • 修正バージョン: node-forge v1.4.0 以降 へ アップデート する こと で 修正 されます
  • 暫定回避策: modInverse() に 渡す 引数 が ゼロ で ない こと を 呼び出し 前 に 検証 する バリデーション を 追加 する
  • 依存関係 の 確認: npm ls forge または npm audit で プロジェクト 内 の node-forge バージョン を 確認 し、間接 依存 も 含めて 更新 する

関連リンク


データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。