『月姫』『ひぐらし〜』他のゲームエンジンNScripterに脆弱性、改竄セーブで任意コード実行の危険。開発者は早急なリビルドを

写真拡大

ゲームスクリプトエンジン「NScripter」にバッファオーバーフローの脆弱性が見つかりました。NScripterはかつて「月姫」「ひぐらしのなく頃に」といった作品で使われたことでも有名なノベルゲーム用ソフトウェア。

脆弱性対策情報ポータルサイトJVNによると、細工されたセーブデータを読み込むことで、任意のコードを実行される可能性があるとしています。CVSS(JVNの共通脆弱性評価システム)による深刻度[IPA値]は6.8。

「NScripter」はノベルゲームの製作に適したゲームスクリプトエンジン。スクリプトがBASICに似ていて習得しやすいことと、解説サイトや書籍類などが充実していること、そして非商用及び同人なら無料で使用できることから人気を博しています。「月姫」「ひぐらしのなく頃に」など、2000年代前半のノベルゲームブームを牽引した作品が「NScripter」で作られていることから、名前を聞いたことがあるという方も多いのではないでしょうか。今回発見された脆弱性で影響を受けるのは、「NScripter」Ver3.00 以前のバージョン及び、これを使って作成されたゲーム。予め細工が施されたセーブデータを読み込むと、任意のコードを実行される可能性があります。JVNでは攻撃のパターンとして、悪意あるユーザが送信してきたセーブデータをゲームで読み込んだ場合を挙げており、「ネットワークからの攻撃が可能」「攻撃条件の複雑さは中程度」「攻撃前の認証操作が不要」「情報漏洩、情報改ざん、可用性への影響はいずれも中程度」としています。前述の通り「NScripter」で作られたゲームは多いのですが、公式サイトによれば脆弱性に影響するのは「エンジンが生成する物ではない外部で作成された不正なセーブデータ」とのこと。「あのゲームの隠しルートが遊べる!」「隠しグラフィックが見られます!」などと説明されていても、外部の信頼できないセーブデータを使うのは避けた方がいいでしょう。公式サイトでは「3.00未満の全てのバージョンにセキュリティ問題が存在します。必ず最新版をダウンロードして差し替えてください」と最新バージョンを使っての開発が推奨されています。また、JVNでは、既存ゲームも最新バージョンの「NScripter」でリビルドすることが勧められています。9月3日には脆弱性に対応したVer3.02がリリースされていますので、ゲーム開発者諸氏はアップデートした上で開発続行及び既存作のリビルドを行うと良さそうです。