Asayomu Tech
注目★★★★★GitHub Advisory

MessagePack-CSharp に DateTime 解析時のスタックオーバーフロー、プロセス強制終了の恐れ

30秒で把握

  • 1MessagePack-CSharp の ReadDateTime() で細工ペイロードによるスタック過剰割り当て・プロセス強制終了が可能
  • 2DateTime 逆シリアル化時に攻撃者が拡張ヘッダーの長さ宣言を悪用、既存のセキュリティ設定では軽減不可
  • 3信頼できないデータを扱う場合はライブラリ更新を適用し、逆シリアル化フロー設定の見直しが必要

要約

MessagePack-CSharp の `MessagePackReader.ReadDateTime()` に脆弱性が存在し、攻撃者が細工した MessagePack ペイロードにより任意サイズのスタック領域を確保させられる。タイムスタンプ拡張ヘッダーで宣言された長さが検証前に `stackalloc` で使用されるため、小さなペイロードで意図的に大きなバッファ確保を誘発可能だ。その結果、キャッチ不可能な `StackOverflowException` が発生しプロセスが強制終了される。信頼できないデータの DateTime 逆シリアル化を行うアプリケーションが影響を受け、`MessagePackSecurity.UntrustedData` や `MaximumObjectGraphDepth` ではこの単一フレーム割り当て問題は軽減されない。

あなたへの影響

MessagePack を使って外部ソースから DateTime データを受け取る場合。

推奨:ライブラリの更新が公開されたら即座にパッチを適用し、本番環境での逆シリアル化処理が信頼できないデータを処理していないか設定を再確認すべき。

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

関連する記事

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