Skip to content

Commit 53607df

Browse files
committed
Tweaks to critical security vulnerability fixes
1 parent 418c73b commit 53607df

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

scripts/middleware.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,24 +139,23 @@ async function sendImage(req, res, next, relUrlSplit) {
139139
}
140140

141141
const middleware = {
142-
missions: function () {
142+
missions: function (ROOT_PATH) {
143143
return (req, res, next) => {
144144
const originalUrl = req.originalUrl.split("?")[0];
145145
const relUrl = req.url.split("?")[0];
146146

147147
// Validate URL starts with /Missions to prevent path traversal
148-
if (!originalUrl.startsWith("/Missions")) {
148+
if (!originalUrl.startsWith(`${ROOT_PATH}/Missions`)) {
149+
return res.sendStatus(404);
150+
}
151+
// Additional validation: ensure no path traversal sequences
152+
if (originalUrl[0].includes("../") || originalUrl[0].includes("..\\")) {
149153
return res.sendStatus(404);
150154
}
151155

152156
if (req.query.time != null && originalUrl.indexOf("_time_") > -1) {
153157
const urlSplit = originalUrl.split("_time_");
154158
const relUrlSplit = relUrl.split("_time_");
155-
156-
// Additional validation: ensure no path traversal sequences
157-
if (urlSplit[0].includes("../") || urlSplit[0].includes("..\\")) {
158-
return res.sendStatus(404);
159-
}
160159

161160
if (dirStore[relUrlSplit[0]] == null) {
162161
dirStore[relUrlSplit[0]] = {

scripts/server.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ setups.getBackendSetups(function (setups) {
620620
app.use(
621621
`${ROOT_PATH}/Missions`,
622622
ensureUser(),
623-
middleware.missions(),
623+
middleware.missions(ROOT_PATH),
624624
express.static(path.join(rootDir, "/Missions"))
625625
);
626626

0 commit comments

Comments
 (0)