Skip to content

Commit e7ddcb9

Browse files
jlesagejc21
authored andcommitted
Fixed directory traversal vulnerability. (NginxProxyManager#114)
Awesome find!
1 parent 3095cff commit e7ddcb9

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/backend/routes/main.js

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const express = require('express');
44
const fs = require('fs');
55
const PACKAGE = require('../../../package.json');
6+
const path = require('path')
67

78
const router = express.Router({
89
caseSensitive: true,
@@ -29,15 +30,22 @@ router.get(/(.*)/, function (req, res, next) {
2930
version: PACKAGE.version
3031
});
3132
} else {
32-
fs.readFile('dist' + req.params.page, 'utf8', function (err, data) {
33-
if (err) {
34-
res.render('index', {
35-
version: PACKAGE.version
36-
});
37-
} else {
38-
res.contentType('text/html').end(data);
39-
}
40-
});
33+
var p = path.normalize('dist' + req.params.page)
34+
if (p.startsWith('dist')) { // Allow access to ressources under 'dist' directory only.
35+
fs.readFile(p, 'utf8', function (err, data) {
36+
if (err) {
37+
res.render('index', {
38+
version: PACKAGE.version
39+
});
40+
} else {
41+
res.contentType('text/html').end(data);
42+
}
43+
});
44+
} else {
45+
res.render('index', {
46+
version: PACKAGE.version
47+
});
48+
}
4149
}
4250
});
4351

0 commit comments

Comments
 (0)