該頁面的內容不代表Mojang Studios或Minecraft Wiki的官方意見。
警告:Apache Log4j2 遠程代碼執行錯誤(CVE-2021-44228)十分嚴重。
此錯誤可能導致計算機資料安全受到嚴重威脅,請務必重視。
本教學介紹了修復Apaches Log4j2相關錯誤的方法。
錯誤緣由
開源的Java日誌記錄工具Apaches Log4j2被曝出存在高危遠程代碼執行錯誤。由於Minecraft: Java版的大部分版本使用了使用了該日誌記錄工具,極大多數Minecraft玩家都可能因該錯誤而遭受攻擊。
錯誤危害
攻擊者可利用該錯誤在未經授權的情況下在玩家電腦上執行任意指令,其中不乏下載病毒、占用系統資源、竊取隱私等惡意指令。由於該錯誤存在範圍廣、利用門檻低,會給玩家帶來極高的安全隱患。
影響範圍
- Minecraft: Java版 13w39a~1.18.1-rc2全部用戶端與伺服器端,包括:
- 原版用戶端與伺服器端;
- 安裝了模組的用戶端與伺服器端;
- Paper、Spigot等大多數第三方伺服器端;
- 其他滿足上述範圍的Java版用戶端與伺服器端。
以下版本不受影響:
- Minecraft: 基岩版;
- Minecraft: Java版 13w38c及以下版本;
- Minecraft: Java版 1.18.1-rc3及以上版本;
- BungeeCord伺服器端。
修複方式
原版用戶端
- Minecraft官方啟動器
- 關閉遊戲、重新啟動啟動器。已修復的版本會自動下載。
- 第三方啟動器
- 關閉遊戲,將啟動器更新到最新版本,並留意更新日誌中是否說明修復了此錯誤。如果沒有,請參照#臨時防禦方案修復。
模組載入器
- Fabric
- 將Fabric Loader更新到0.12.9及以上版本。
- Forge
- 1.18及以上版本的使用者請將Forge更新到38.0.17及以上版本。
- 1.17.1及以下版本的Forge已不再安全,請修復啟動器,或參照#臨時防禦方案修復。
- 其他模組載入器
- 由於多數其他模組載入器已停更,它們都已不再安全,請修復啟動器,或參照#臨時防禦方案修復。
原版伺服器端
- 1.18
- 關閉伺服器端,升級到1.18.1,或者按照1.17的方法修復。
- 1.17
- 關閉伺服器端,在啟動腳本中加入JVM參數:
-Dlog4j2.formatMsgNoLookups=true - 1.12~1.16.5
- 關閉伺服器端,下載此檔案到伺服器的工作路徑。然後在啟動腳本中加入JVM參數:
-Dlog4j.configurationFile=log4j2_112-116.xml - 1.7~1.11.2
- 關閉伺服器端,下載此檔案到伺服器的工作路徑。然後在啟動腳本中加入JVM參數:
-Dlog4j.configurationFile=log4j2_17-111.xml
第三方伺服器端
- Paper、WaterFall、Velocity、Spigot
- 這些伺服器端均已發布緊急更新,請關閉伺服器端,更新到最新版本。
- BungeeCord
- 不受影響,無需操作。
- 其他伺服器端
- 請先關閉伺服器端,然後參照MCBBS上的帖子修復。如果你使用的伺服器端沒有在帖子中列出,請將伺服器端更新到最新版本,並留意更新日誌中是否說明修復了此錯誤。如果沒有,請參照#臨時防禦方案修復。
臨時防禦方案
本段參考了火絨安全實驗室發布的專欄:https://www.bilibili.com/read/cv14365632
- 如果可以,加入JVM參數:
-Dlog4j2.formatMsgNoLookups=true - 將系統環境變數
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS設定為true
敬請參閱
- 官方網站上的公告:"Important Message: Security vulnerability in Java Edition"
- MCBBS上的公告翻譯:「重要訊息:Java 版中的安全錯誤」
- MCBBS上的伺服器修復指南:【2021.12.10】 Log4j 0day CVE 錯誤警示及修復指南
- 火絨安全實驗室的專欄:附修復建議| Apache Log4j 遠程代碼執行錯誤通告
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||