北村由衣のブログ

log4j2の脆弱性によるMinecraftへの影響

log4jで任意コード実行の脆弱性

Java界隈で御用達なログ出力ライブラリlog4jの第2世代、log4j2に、 任意コードが実行可能な脆弱性が報告されています。

動作例。そこまで複雑ではない特定文字列をログ出力させることで、MSペイント(draw.exe)を起動させている

log4j2のGitHubでissueに報告されており、議論が進んでいるようです。

IPAの脆弱性情報受付フォームの方には、ネットから集めた情報を投げておきました

Minecraftでの影響

Minecraft(以下MC)では、ログファイルを出力するために、本脆弱性を持つlog4j2が使用されています。MCバージョンによって使用しているlog4j2のバージョンは異なりますが、 MC1.17.1で暫定的に有害事象の発生が確認できました。

本脆弱性の発現のトリガーは、特定文字列がサーバまたはクライアントに記録される事、となっており、 マルチプレイのサーバ環境では、サーバもユーザも対策が必要になります。

対応策

サーバ側

影響範囲は、全サーバ環境と思われます。
バニラ・Forge・Bukkit系統 などでそれぞれ最新版のリリースを監視し、適用しましょう

暫定対応として、以下の対応が有効らしいです。
サーバ起動のためのbatファイルで、起動引数に対策コードを追加しましょう

@echo off
java -Xms1024M -Xmx1024M -Dlog4j2.formatMsgNoLookups=true -jar spigot-1.17.1.jar nogui

プレイヤーによるチャット発言の他、殺害ログでのアイテム名等にも反応して脆弱性が突かれます。

クライアント側

影響範囲は、全クライアントです。全MCバージョン、Mod有無は関係ありません。

バニラ環境は、MC1.12以上を対象に、ランチャーの再起動によりパッチが適用されるらしいです

暫定対応として、MC1.17以上では、以下の対応が有効のようです。
起動構成の詳細なオプションに存在する「JVMの引数」に対策コードを追記します。
-Dlog4j2.formatMsgNoLookups=true
Minecraftランチャーの起動構成編集画面でのJVM引数の編集例

復習

本件、Minecraftに限らず広範にlog4jを使用している環境での影響が懸念されます。事象は深刻で、早急な対応が必要です
Twitterを観測していると、かなり急速にパッチの作成などの対応が進んでいるようです。
最新の状況を追いかけておくことが必要な状況と思われます

私自身が開発したプラグインやModでの影響調査はこれから行い、必要な対応があれば実施する予定です


このエントリーをはてなブックマークに追加


コメントはこちらからお寄せください