Asayomu Tech
注目★★★★★GitHub Advisory

MessagePack-CSharp に無限再帰の脆弱性、ネストしたデータで DoS 可能

30秒で把握

  • 1MessagePackReader.TrySkip() が深さ制限をバイパス・未知フィールド処理中の再帰でスタック枯渇
  • 2外部ペイロード入力時に多段ネスト配列で StackOverflowException 発生・プロセス強制終了
  • 3UntrustedData で防げず・MessagePack ライブラリを至急パッチ更新・深さチェック再実装検証

要約

MessagePack-CSharp の MessagePackReader.TrySkip() がネストされた配列やマップを深さ制限なく再帰的に処理し、MaximumObjectGraphDepth の保護をバイパスする脆弱性が報告された。未知のマップキーや無視フィールドのスキップ処理中に攻撃者が制御可能な深くネストされたデータを埋め込むと、スタックオーバーフローが発生し、キャッチできないため処理を強制終了させられる。信頼できない MessagePack ペイロードを逆シリアライズするアプリケーションが影響を受け、単一要素配列やマップの多段ネストで プロセス全体が停止する可能性がある。UntrustedData オプションはスキップ経路には適用されないため、この脆弱性は軽減されない。

あなたへの影響

MessagePack-CSharp を使用するアプリケーション、特に API やサービス層で外部からの MessagePack データを受け取るチームは、早急にライブラリを最新版にアップデートし。

推奨:ネストされたデータ入力に対する追加検証の追加を検討すべき。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。