「MECCHA CHAMELEON」の脆弱性、悪意あるカスタムマップからリモートコード実行が可能に

MECCHA CHAMELEONで最近修正された脆弱性により、攻撃者が制御するSteam Workshopのマップを通じて、Windowsシステム上の任意の場所にファイルを書き込むことが可能でした。被害者が端末を再起動すると、リモートコード実行につながるおそれがありました。

Vulnerabilityassessment tool

Aikido Securityのセキュリティ研究者は、初月で1500万本を売り上げたとされるオンライン鬼ごっこゲーム「MECCHA CHAMELEON」に影響する遅延型リモートコード実行(RCE)の脆弱性を公表しました。

この脆弱性により、悪意あるコミュニティマップがUnreal Engineの露出した音声録音機能を悪用し、攻撃者が制御するファイルをプレイヤーのシステムに配置できる状態になっていました。

MECCHA CHAMELEONの脆弱性

このゲームの開発元は、2026年8月20日にリリースされたMECCHA CHAMELEONバージョン4.0.0でこの問題を修正しました。Aikido Securityの研究者Robbe Van Roey氏によると、このアップデートはゲーム起動前に自動的にインストールされるとのことです。

MECCHA CHAMELEONは、Steam Workshopを通じて配布されるコミュニティ制作のレベルに対応しています。ロビーのホストがマップを選択すると、他のプレイヤーは試合に参加する前にそのマップをダウンロードするよう求められます。

Image

モデルやテクスチャなどのアセットのみを含む従来のゲームレベルとは異なり、このゲームのUnreal Engine 5.6.1製マップには、Unrealのビジュアルスクリプティングシステムである「Blueprint」を含めることができます。

これらのBlueprintグラフはMECCHA CHAMELEONのプロセス内で実行され、開発者がBlueprintに公開しているネイティブ関数を呼び出すことが可能です。

このアーキテクチャは、重大な信頼境界の問題を生み出していました。コミュニティプラットフォームからダウンロードされた信頼できないマップが、ゲームが許可したBlueprintロジックを、すべてのプレイヤーのマシン上で実行できてしまう状態にあったのです。

Aikidoの研究者らは、アクセス可能なBlueprintノードを調査し、特にファイルの保存、エクスポート、書き込み、録音、開封、起動といったオペレーティングシステムとの連携に関わる関数に着目しました。

その結果、録音した音声をユーザー指定のパスに保存するUnrealの「Finish Recording Output」関数が特定されました。研究者らは、悪意あるマップが絶対パスを指定するか、あるいは相対パスを構築することで、ゲームの既定ディレクトリであるBouncedWavFilesの外へ脱出できることを発見しました。

これにより、任意のファイル書き込みが可能な原始的な手段が生まれ、攻撃者はWindowsのスタートアップフォルダなど、ユーザーが書き込み可能な場所を標的にできるようになりました。スタートアップフォルダに置かれたファイルは、システムの再起動後に自動実行されます。

当初、Unreal Engineが自動的に.wav拡張子を付加するため、実行ファイルを単純に配置することはできませんでした。しかし研究者らは、Unrealのファイル名処理と、より低レベルなWindowsファイルAPIとの間に解析上の食い違いがあることを発見しました。

指定するファイル名にヌルバイトを含めることで、検証した条件下ではWindows APIが付加された拡張子を無視することが判明しました。

Image

コード実行を成立させるには、危険な保存先を選ぶだけでは不十分で、ファイルの中身自体も実行可能な形式である必要がありました。研究者らは、非圧縮の16ビットPCM WAV音声を利用しました。この形式では各音声サンプルが、WAVデータセクションに書き込まれるバイトを直接表現します。

RIFF/WAVEヘッダーはUnrealが生成するため、一般的なPE実行ファイルはそのままでは使用できません。そこで、概念実証コードではPCM音声サンプルの中にHTML Application(HTA)コンテンツを埋め込みました。

Windowsはmshta.exe経由で.htaファイルを実行できます。ブラウザ上で動作するHTMLとは異なり、HTAスクリプトはWindowsのCOMオブジェクトにアクセスし、プロセスを起動することが可能です。

最終的に作成された悪意あるマップは、レベル読み込み時に録音のワークフローを起動して用意しておいたPCM音声を再生し、その結果生成されたペイロードをスタートアップフォルダのパスに保存します。このペイロードは被害者がWindowsを再起動して初めて実行されるため、即時のコード実行ではなく遅延型のRCEとなっていました。

Image

Aikidoはこの問題をMECCHA CHAMELEONの開発チームに報告し、開発チームはバージョン4.0.0において、影響を受けるStopRecordingOutput機能を通じたファイル作成を無効化しました。研究者らはSteam Workshop上のマップも調査しましたが、既存のマップがこの脆弱性を悪用していた証拠は見つからなかったとしています。

Exploitdatabase access

ただし研究者らは、他にも私的に報告された脆弱性の疑いがあるものの、独自に確認は取れていないと注意を促しています。

カスタムマップのセキュリティ状況がより明確になるまでは、プレイヤーは公式マップを優先し、アップデートを速やかに適用し、求めてもいないWorkshopコンテンツについては無害なゲームコンテンツとしてではなく、信頼できない可能性があるコードとして扱うべきです。

SOCを最新の状態に保ち、出現から24時間以内にアクティブなマルウェアやフィッシングを把握しましょう。 ANYRUNを試して、早期検知でインシデントを未然に防ぎましょう。 

翻訳元: https://gbhackers.com/meccha-chameleon-flaw/

本記事は gbhackers.com の記事を翻訳・要約したものです。