Seroval: `fromJSON` デシリアライザーは、ノードから提供される配列の長さとシーケンスの終了インデックスを信頼するため、認証されていないイベントループのDoS攻撃につながる可能性があります。
### 概要
`fromJSON` および `fromCrossJSON` は、2つのノードのフィールドをチェックせずに使用していました。
- 配列ノードの要素リストが配列であるかどうかを確認していませんでした。小さなデータ量を送信することで、デコーダーがループする長さを設定できます。この問題は、GHSA-wp97-x4hv-qvhp でも追跡されています。
- シーケンスノードの終了インデックスがチェックされていませんでした。巧妙に作成された値によって、終了しないイテレータが生成されました。
### 影響
`fromJSON` または `fromCrossJSON` に信頼できない入力を渡すサービスは、認証されていないリクエストによって利用できなくなる可能性があります。
- 配列の場合、デコーダーが実行されている間、スレッドがブロックされます。
- シーケンスの場合、結果のイテレータを最後まで読み込もうとするコードが無限に実行されます。
### 修正
`seroval@1.6.8` で修正されました。
- 要素リストは配列でなければなりません。
- シーケンスノードの `throw` と `done` インデックスは、-1 から最後の要素のインデックスまでの整数でなければなりません。
無効な入力の場合、`SerovalMalformedNodeError` がスローされます。
### 対策
特になし。バージョン 1.6.8 にアップグレードしてください。
影響を受けるパッケージ:
- npm (JavaScript) seroval: 影響を受けるバージョンは 1.6.7 以下、1.6.8 で修正されています。