つみかさね

CVE-2026-33036

High(7.5)

CVE-2026-33036 — fast-xml-parser 数値 文字 参照 に よる エンティティ 展開 制限 バイパス

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

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

製品ベンダー影響バージョン
fast-xml-parserNaturalIntelligence>= 4.0.0-beta.3, <= 5.5.5
CVEfast-xml-parserXXEDoSCWE-776

概要

fast-xml-parser は npm で 広く 利用 されて いる JavaScript 向け の XML パーサー ライブラリ です。バージョン 4.0.0-beta.3 から 5.5.5 まで の 範囲 に おいて、XML エンティティ 展開 に 関する 制限 の バイパス 脆弱性(CWE-776: XML エンティティ 展開 の 不適切 な 制限)が 存在 します。この 脆弱性 の CVSS スコア は 7.5 で あり、High と 評価 されて います。

fast-xml-parser は maxTotalExpansionsmaxExpandedLength と いう 設定 オプション を 提供 し、XML エンティティ の 過剰 な 展開 に よる サービス 拒否(DoS)攻撃 を 防止 して います。しかし、replaceEntitiesValue() 関数 の 実装 に おいて、これら の 制限 は DOCTYPE で 定義 された カスタム エンティティ に のみ 適用 されて おり、数値 文字 参照(&#NNN; 形式)および 標準 XML エンティティ(& < > ' ")に は 一切 カウント が 行われて いません。

この 実装 の 不備 に より、攻撃者 は 大量 の 数値 文字 参照 を 含む XML ドキュメント を 送信 する こと で、エンティティ 展開 制限 を 完全 に 回避 できます。例えば、100 万 個 の 数値 エンティティ 参照 を 含む XML を パース させる と、約 147MB の メモリ 割り当て が 発生 し、サーバー の メモリ を 枯渇 させる サービス 拒否 攻撃 が 成立 します。この 攻撃 は 特別 な 権限 や 認証 を 必要 と せず、XML 入力 を 受け付ける すべて の エンドポイント が 攻撃 対象 と なり得ます。

fast-xml-parser は npm で 週間 数百万 ダウンロード を 記録 する 人気 パッケージ で あり、多数 の プロジェクト が 依存 して いる ため、影響 範囲 は 広い と 考えられます。XML を 外部 入力 として 受け付ける アプリケーション で は、速やか な 対応 が 必要 です。

CVSS ベクトル

項目
CVSS スコア7.5
深刻度High
CWECWE-776(XML エンティティ 展開 の 不適切 な 制限)
攻撃元ネットワーク
攻撃 条件

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

製品影響 バージョン修正 バージョン
fast-xml-parser4.0.0-beta.3 〜 5.5.55.5.6

修正 バージョン と 回避策

fast-xml-parser バージョン 5.5.6 に アップデート する こと で、数値 文字 参照 および 標準 XML エンティティ の 展開 も maxTotalExpansionsmaxExpandedLength の カウント 対象 に 含まれる よう に 修正 されます。すぐ に アップデート できない 場合 は、XML 入力 の サイズ を Web アプリケーション ファイアウォール(WAF)や リバース プロキシ の レベル で 制限 する こと が 暫定 的 な 対策 です。受信 する XML の 最大 サイズ を 制限 し、数値 文字 参照 の 大量 使用 を 検知 する ルール を 追加 する こと を 検討 して ください。また、Node.js プロセス の メモリ 使用量 に 上限 を 設定 する こと も、DoS の 影響 を 軽減 する 手段 と なります。

関連 リンク


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

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