キャラクター倒すとリモートコード実行が可能になるSource Engineの脆弱性

2017年7月23日 16:27

印刷

記事提供元:スラド

ゲーム内キャラクターを倒すことでリモートからのコード実行が可能となるValveのSource SDKの脆弱性について、発見したOne Up Securityが解説している(One Up Securityの記事The Vergeの記事)。

脆弱性が存在するのは倒されたキャラクターに適用されるラグドールモデルの処理に関する部分だ。Source Engineではマップファイルにカスタムコンテンツを格納することでユーザーがマップにコンテンツを追加できる。ラグドールモデルファイルをオリジナルと同じリソースパスでマップファイルに格納すれば、オリジナルを置き換えることが可能となる。

ラグドールモデルのルールはトークン化して読み込まれるが、トークン化の際に適切な境界チェックが行われない。そのため、特別に細工したラグドールデータを読み込ませるとバッファーサイズを超えるトークンが生成され、バッファーオーバーフローが発生する。さらにsteamclient.dllではASLRが有効になっていないため、メモリーアドレスは予測可能だという。PoCは30日以内の公開が予告されており、Shell32.dllを読み込ませてcmd.exeを実行するものとのこと。

報告を受けたValveでは、Counter Strike: Global OffensiveTeam Fortress 2Half-Life 2: DeathmatchPortal 2Left 4 Dead 2などの修正を行い、パッチの提供を6月に開始している。

 スラドのコメントを読む | セキュリティセクション | セキュリティ | バグ | ゲーム

 関連ストーリー:
Xbox Oneでアニメ「マイリトルポニー」のエピソードに言及した奇妙なエラーが表示されるトラブル 2017年07月22日
自己防御機能の強いセキュリティソフトは? 2017年05月07日
PS4にゴキブリが住み着きやすい理由 2017年04月21日

※この記事はスラドから提供を受けて配信しています。

関連キーワード

関連記事