セキュリティ企業コンテクストの上級研究員トム・コート氏は、Steam クライアントに 10 年以上前から存在するリモートコード実行バグを発見した。
Steamクライアントライブラリのヒープ破損
このバグはヒープ破損によるもので、攻撃者がリモートからメモリリークを引き起こす可能性がありました。Steamクライアントは、ユーザーデータグラムプロトコル(UDP)上で配信されるカスタムプロトコルを使用しており、この脆弱性に関連する2つのフィールドがあります。1つはパケット長、もう1つは再構成されたデータグラムの合計長です。
この脆弱性は、断片化されたデータグラムの最初のパケットについて、指定されたパケット長がデータグラム全体の長さ以下であることを確認するチェックが欠如していたことに起因しています。Court氏によると、このヒープ破損バグは、Valveがクライアントにアドレス空間レイアウトランダム化(ASLR)保護さえ使用していなかったという事実と相まって、攻撃者がこのバグを非常に信頼性の高いエクスプロイトに利用できた可能性があるとのことです。
Valveは偶然にバグを軽減した
昨年7月、ValveはASLRなどのエクスプロイト緩和策をクライアントに実装し始めました。これにより、誰かがこのバグを悪用しようとするとクライアントがクラッシュするようになりました。当時、Valveはこのバグを認識していなかったため、誤って動作を停止させてしまいました。
しかし、コート氏によると、もし攻撃者が別の情報漏洩脆弱性を利用できれば、ヒープ破損バグのメモリ位置を把握でき、その時点でASLRは無関係になる可能性があるという。ASLRの目的は、メモリ内のコードの位置をランダム化することにある。
コート氏は、2月20日にValveにこのバグを報告し、Valveは12時間以内にSteamクライアントのベータ版にパッチを配信したと述べた。安定版クライアントには1ヶ月後の3月22日にパッチが配信された。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。