From fb6fa9b7d799b5d96bda15b66f7ce741326f168d Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Fri, 10 Dec 2021 10:40:56 -0600 Subject: [PATCH] fix: use Mojang log4j config file fixes by version (#1179) --- .github/workflows/build-multiarch.yml | 1 + scripts/start-finalExec | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index 251e026d..8c6626e5 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -9,6 +9,7 @@ on: - java16* - java17* - test/* + - fix/* tags: - "[0-9]+.[0-9]+.[0-9]+" - "[0-9]+.[0-9]+.[0-9]+-java8-multiarch" diff --git a/scripts/start-finalExec b/scripts/start-finalExec index be258049..939c700f 100755 --- a/scripts/start-finalExec +++ b/scripts/start-finalExec @@ -85,8 +85,25 @@ if [ -n "$JVM_DD_OPTS" ]; then done fi +patchLog4jConfig() { + file=${1?} + url=${2?} + if ! get -o "$file" "$url"; then + log "ERROR: failed to download corrected log4j config" + exit 1 + fi + JVM_OPTS="-Dlog4j.configurationFile=${file} ${JVM_OPTS}" +} + # Patch Log4j remote code execution vulnerability -JVM_OPTS="-Dlog4j2.formatMsgNoLookups=true ${JVM_OPTS}" +# NOTE: Paper, bukkit, and spigot are normalized to SPIGOT +if [[ ${TYPE^^} != SPIGOT ]] && versionLessThan 1.12; then + patchLog4jConfig log4j2_17-111.xml https://launcher.mojang.com/v1/objects/dd2b723346a8dcd48e7f4d245f6bf09e98db9696/log4j2_17-111.xml +elif [[ ${TYPE^^} != SPIGOT ]] && versionLessThan 1.17; then + patchLog4jConfig log4j2_112-116.xml https://launcher.mojang.com/v1/objects/02937d122c86ce73319ef9975b58896fc1b491d1/log4j2_112-116.xml +elif versionLessThan 1.18.1; then + JVM_OPTS="-Dlog4j2.formatMsgNoLookups=true ${JVM_OPTS}" +fi if isTrue ${ENABLE_JMX}; then : ${JMX_PORT:=7091}