Javaのアプリケーションで広く使われているライブラリのLog4j 2に深刻な脆弱性が見つかりました。
この脆弱性が悪用されると任意のリモートコードを実行なためクライアントやサーバーのあらゆるデータや機能へアクセス可能であり非常に危険な状態です。
クライアントの場合はMinecraftへ外部からアクセスができる場合に限り脆弱性が悪用される可能性があるものですが、念には念を入れ脆弱性の対応をしましょう。
脆弱性の概要
まずは本件脆弱性がどのようなものか紹介し、事の深刻さを知ってもらおうと思います。
この脆弱性はプログラミング言語のJavaでコンピュータのログを出力したりするフレームワークと呼ばれるプログラム群の一部に問題があり引き起こされています。
影響範囲
影響範囲はかなり広く、本記事はMinecraftに限って説明します。
少なくとも下Minecraft 1.8から1.18までで影響があると確認されています。
製品名 | 脆弱性対応バージョン | 備考 |
---|---|---|
Minecraft | Minecraft 1.18.1以降 | クライアントとサーバーいずれも脆弱性あり スナップショットではMinecraft 1.18.1 rc3で対応済 |
Forge | 確認中 | |
OptiFine | Minecraft 1.12以降 | OptiFineにより追加されたランチャーの起動構成の場合はMinecraft 1.12以降であれば修正パッチ適用 |
The Twilight Forest | 対応不要 | |
Fabric | 確認中 | |
CraftBukkit | 確認中 | |
Spigot | Minecraft 1.18以降の最終メジャーバージョンを再ビルドすると対応可能 Spigotのビルド方法はこちらの記事で紹介しています(1.17.1の場合の記事ですが応用可能) | Minecraft 1.8世代の場合はMinecraft 1.8.8で対応可能 |
Paper | 確認中 |
なおMinecraft 1.12以降の場合はMinecraftランチャーを一度立ち上げ直すことで修正パッチの適用がされるようです。
Minecraft 1.11世代までのバージョンについてはクライアントに対して修正パッチが適用されないようです。
脆弱性への対応方法
脆弱性へはMinecraft 1.12以降は修正パッチで、Minecraft 1.18.1以降は正式リリースで対応されていますが、例えばMinecraft 1.8をプレイしたいような場合は次の対応を行ってください。
クライアント
Minecraftをプレイするユーザーの方は次の方法で問題を回避できます。
前述の通りMinecraft 1.12以降のクライアントの場合はMinecraftランチャーを立ち上げ直すことで修正パッチが適用されるようです。
修正パッチ等が入手できていても怖いものは怖いという方や古いMinecraftをプレイしたい方は下記操作を行いましょう。
ランチャーを起動して上部の「起動構成」から設定を変更します。
起動構成には自分で作成した起動構成やMODなどが自動で作成した起動構成などが並んでいますが、今回は最新のリリースバージョンに脆弱性対策を行います。
起動構成にカーソルを当てると「…」が出現しますのでカーソルを当て「編集」をクリックします。
「起動構成の編集」が開いたら「詳細なオプションを表示」でオプションを展開し、「JVMの引数」の箇所の内容を編集します。
JVMの引数はデフォルトで下記のようになっています。
-Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
この設定項目の中に「-Dlog4j2.formatMsgNoLookups=true」を追加することで、脆弱性がある部分が無効化されます。
実際に設定すると次のようになります。
-Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -Dlog4j2.formatMsgNoLookups=true
設定を変更しましたら「保存」をクリックしましょう。
サーバー
サーバーの場合は起動時のコマンドに「-Dlog4j2.formatMsgNoLookups=true」を含めることで脆弱性の機能を無効化できます。
java -Xms1024M -Xmx1024M -Dlog4j2.formatMsgNoLookups=true -jar server.jar nogui
詳しいことが分かり次第追記していきます。
サーバー管理者に限らずMinecraftをプレイする方が安心して遊べるように、この問題の周知をお願いします。