
CVE-2022-35978のために作成された概念実証(教育目的のみ)
CVE-2022-35978 は、Minetest バージョン 5.5.1 以前に影響を与える重大なセキュリティ脆弱性です。
Minetest は、簡単な MOD 作成やゲーム制作をサポートする無料のオープンソース ボクセルゲームエンジンです。シングルプレイヤーモードでは、MOD がメインメニューを表示するためにロードされる Lua スクリプトを制御するグローバル設定を設定できます。このスクリプトは、ゲームセッションが終了するとすぐにロードされます。メニューが実行される Lua 環境はサンドボックス化されておらず、ユーザーのシステムに直接干渉する可能性があります。
この問題を軽減するには、ユーザーは Minetest をバージョン 5.6.0 以降に更新することをお勧めします。このバージョンでは脆弱性が対処されています。
この脆弱性には、NVD によって CVSS v3.1 基本スコア 10.0 (Critical) が割り当てられており、高い潜在的影響を示しています。
詳細については、公式の Minetest 変更ログとこの問題に対処した GitHub コミットを参照してください。

スクリプトを実行するには、
cve_2022_35978' を '[MINETEST_PATH]/mods' ディレクトリに配置します。[MINETEST_PATH]/bin/mintest.exe' を管理者として実行します。Esc キーを押してメインメニューに戻ります。minetest.conf) に次の行を追加します。enable_console = true
これにより、ゲームを起動するとコマンドターミナルも起動され、print メッセージが出力されます。
この PoC は、Windows 10 (Build 19045) 上の Minetest バージョン 5.0.0 でテストされ、動作が確認されています。
Minetest バージョン 5.6.0 で PoC をテストしたところ、これが対処されていることが確認されました。
2025-02-28 23:24:11: ERROR[Main]: ModError: Failed to load and run script from C:\Users\Can\Desktop\minetest-5.6.0-win64\bin\..\mods\cve_2022_35978\init.lua:
2025-02-28 23:24:11: ERROR[Main]: Attempted to set disallowed setting.
2025-02-28 23:24:11: ERROR[Main]: stack traceback:
2025-02-28 23:24:11: ERROR[Main]: [C]: in function 'set'
2025-02-28 23:24:11: ERROR[Main]: ...minetest-5.6.0-win64\bin\..\mods\cve_2022_35978\init.lua:29: in main chunk
2025-02-28 23:24:11: ERROR[Main]: Check debug.txt for details.
2025-02-28 23:24:11: ACTION[Main]: Server: Shutting down
私はこの Proof of Concept (PoC) を、教育目的と、仲間内でアプリケーションセキュリティについて学習を促進するためにのみ開発しました。さらに、アプリケーションセキュリティとビデオゲームプログラミングの両方に対する強い情熱から、この CVE の調査に特に関心を持っていました。
この Proof of Concept (PoC) は、教育目的およびアプリケーションセキュリティ分野の学習を促進する目的でのみ提供されます。私はこのコードの悪意のある使用を容認または支持しません。脆弱性の不正な悪用は違法かつ非倫理的である可能性があります。この PoC を責任を持って、明示的な許可がある環境でのみ使用してください。