From a0e7915cf2b8852f4338f7a004122697d18ca82a Mon Sep 17 00:00:00 2001
From: Scott <9237920-slruesch@users.noreply.gitlab.com>
Date: Sat, 13 Dec 2025 20:32:09 -0600
Subject: [PATCH 1/6] replace unsafe .innerHTML calls in motd.js
---
app/frontend/static/assets/js/motd.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/app/frontend/static/assets/js/motd.js b/app/frontend/static/assets/js/motd.js
index 8f63e763..74761131 100644
--- a/app/frontend/static/assets/js/motd.js
+++ b/app/frontend/static/assets/js/motd.js
@@ -24,11 +24,11 @@ var styleMap = {
function obfuscate(string, elem) {
var magicSpan;
if (string.indexOf('
') > -1) {
- elem.innerHTML = string;
+ elem.innerText = string;
elem.childNodes.array.forEach(currNode => {
if (currNode.nodeType === 3) {
magicSpan = document.createElement('span');
- magicSpan.innerHTML = currNode.nodeValue;
+ magicSpan.innerText = currNode.nodeValue;
elem.replaceChild(magicSpan, currNode);
init(magicSpan);
}
@@ -43,7 +43,7 @@ function obfuscate(string, elem) {
obfuscators.push(window.setInterval(function () {
if (i >= len) i = 0;
obsStr = replaceRand(obsStr, i);
- el.innerHTML = obsStr;
+ el.innerText = obsStr;
i++;
}, 0));
}
@@ -65,7 +65,7 @@ function applyCode(string, codes) {
obfuscated = true;
}
});
- if (!obfuscated) elem.innerHTML = string;
+ if (!obfuscated) elem.innerText = string;
return elem;
}
function parseStyle(string) {
--
GitLab
From dbe847e5a5a446bab9026122835fbe7eab096584 Mon Sep 17 00:00:00 2001
From: Scott <9237920-slruesch@users.noreply.gitlab.com>
Date: Sat, 13 Dec 2025 20:34:03 -0600
Subject: [PATCH 2/6] replace unsafe .innerHTML calls in details_stats.html
---
app/frontend/templates/panel/parts/details_stats.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/frontend/templates/panel/parts/details_stats.html b/app/frontend/templates/panel/parts/details_stats.html
index aefe871e..9d51c886 100644
--- a/app/frontend/templates/panel/parts/details_stats.html
+++ b/app/frontend/templates/panel/parts/details_stats.html
@@ -200,7 +200,7 @@
if (server.version) {
server_version.innerHTML = server.version;
- server_input_motd.innerHTML = server.desc;
+ server_input_motd.innerText = server.desc;
}
else {
server_version.innerHTML = `{{ translate('serverStats', 'unableToConnect', data['lang']) }}`;
--
GitLab
From 18a69515d7c90e502d6faf36eb33c10ce48ac281 Mon Sep 17 00:00:00 2001
From: Scott <9237920-slruesch@users.noreply.gitlab.com>
Date: Sat, 13 Dec 2025 20:49:50 -0600
Subject: [PATCH 3/6] restructure MOTD building in status.html to prevent
injection
---
app/frontend/templates/public/status.html | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/app/frontend/templates/public/status.html b/app/frontend/templates/public/status.html
index 67f53973..f7e08b8f 100644
--- a/app/frontend/templates/public/status.html
+++ b/app/frontend/templates/public/status.html
@@ -210,12 +210,17 @@
m_motd = `
`;
}
- var desc_motd = `` + server.desc + `
`;
- m_motd = m_motd + `