10月21日の夜、国内の人気ゲームが次々と緊急メンテナンスに入った。原因は、Webサービスの裏側で広く使われるプログラミング言語「PHP」に見つかった深刻な脆弱性だ。多くのタイトルは翌日までに復旧したが、そのまま幕を下ろしたゲームもある。明暗を分けたものは何だったのか。
数時間で戻ったゲーム、戻れなかったゲーム
問題となったのは「php2shell」と通称される2件の脆弱性で、深刻度を示すCVSS v4.0のスコアはいずれも9.2。ログインなしで外部からサーバー上の任意のコードを実行される恐れがある。修正版は日本時間21日23時に公開され、国家サイバー統括室が速やかな適用を呼びかけたほか、高市早苗首相も公開に先立ち自身のXで「今夜に対応して頂きたい大至急のお願い」と投稿した。首相が自らソフトウェアの更新を呼びかけるのは異例であり、欧州でも政府系サイトが予防的に停止されるなど、影響は世界に及んだ。
Cygamesの『ウマ娘 プリティーダービー』は22日午前2時30分にメンテナンスを終え、『グランブルーファンタジー』も同日朝から順次再開した。一方、旅行ゲーム『ワールドクエスト』は、古い仕組みでは十分な対策がとれないとして21日に即日終了。同作は2011年に始まり、2019年に一度終了したのち、2020年にほぼ当時の中身のまま復活していた。放置型RPG『僕の魔界を救って!』も22日、OSやPHPを新しい環境へ移すのは現実的でないとしてサービス終了を発表した。
同じ2011年生まれでも結論は違う
対照的なのが、Cygamesの『神撃のバハムート』だ。2作品と同じく2011年に始まった同作は、2022年に新規シナリオやガチャの更新を終え、以降は新規コンテンツを追加しない形で運営されてきた。それでも同社は、長年使ってきた旧バージョンのPHPを新しいバージョンへ更新する大改修を選んだ。複数世代を飛び越える更新のため、プログラムの広範囲な改修とゲーム全体の動作確認が必要になり、メンテナンスは開始から1週間を超える見込みだという。
同じ会社のタイトルでも、『ウマ娘』は約4時間半、『神バハ』は1週間超の見込み。この差の背景にあるのが、ソフトウェアの更新を後回しにした分だけ改修の手間が膨らむ「技術的負債」だ。修正版が正式に出たのはサポート中の8.2〜8.5系で、サポートが切れた7.4〜8.1系には最小限の修正コードが用意されたにとどまる。
一方、脆弱性の影響は2012年公開の5.4系までさかのぼるとされ、さらに古い版を使い続けてきたシステムは新しい版へ移るほかない。10年前の環境に合わせて書かれたゲームを最新のPHPで動かすには、コードの広範な書き換えが必要になる。
3作品は、古い環境のまま10年以上動いてきた点で共通する。分かれ目になったのは、積み上がった負債を一度に返済できる体力が運営側にあったかどうかだろう。
寿命を決めるのは売上だけではない
2021年には、Java向けのログ出力ライブラリ「Log4j」の脆弱性「Log4Shell」が発覚し、『マインクラフト』ではチャット欄に短い文字列を書き込むだけで悪用できるとして注目を集めた。今回は、Webサービスの土台として広く使われるPHP本体で同様の事態が起きた。しかもphp2shellは、OpenAIやWizなどの研究者がAIを活用して見つけたとされる。基盤の欠陥が見つかるペースは、今後さらに上がる可能性がある。
ライブサービスゲームの寿命は、売上やユーザー数だけでは決まらない。土台のソフトウェアを最新に保てるかどうかが、もう一つの条件になる。長く愛されるタイトルほど、その維持費は見えにくい場所で膨らんでいく。運営会社には、更新を続けるための予算か、ユーザーのデータを守ったまま幕を引く出口の計画か、そのどちらかを平時から用意しておくことが求められている。














