fast-xml-parser が、すべてのエンティティ展開制限を回避する数値エンティティ展開の影響を受ける (CVE-2026-26278 の不完全な修正)
プラットフォーム
nodejs
コンポーネント
fast-xml-parser
修正バージョン
5.5.6
## 概要 CVE-2026-26278 の修正では、XML エンティティ展開によるサービス拒否 (Denial of Service) を防ぐために、エンティティ展開制限 (`maxTotalExpansions`、`maxExpandedLength`、`maxEntityCount`、`maxEntitySize`) が追加されました。ただし、これらの制限は DOCTYPE で定義されたエンティティに対してのみ適用されます。**数値文字参照** (`&#NNN;` および `&#xHH;`) と標準 XML エンティティ (`<`、`>` など) は、展開制限を適用しない別のコードパスで処理されます。 攻撃者は、大量の数値エンティティ参照を使用して、設定されたすべての制限を完全に回避し、過剰なメモリ割り当てと CPU 消費を引き起こす可能性があります。 ## 影響を受けるバージョン fast-xml-parser v5.x から v5.5.3 (および npm の v5.5.5 の可能性あり) ## 根本原因 `src/xmlparser/OrderedObjParser.js` では、`replaceEntitiesValue()` 関数に 2 つの異なるエンティティ置換ループがあります。 1. **638-670 行**: DOCTYPE エンティティ — `entityExpansionCount` および `currentExpandedLength` の追跡による展開カウント。これは CVE-2026-26278 の修正でした。 2. **674-677 行**: `lastEntities` ループ — `num_dec` (`/&#([0-9]{1,7});/g`) および `num_hex` (`/&#x([0-9a-fA-F]{1,6});/g`) を含む標準エンティティを置換します。**このループには展開がありません
修正方法
公式パッチはありません。回避策を確認するか、アップデートを監視してください。