Merge pull request from GHSA-p528-555r-pf87

Fix Relative Path Traversal Attack on note creation
This commit is contained in:
David Mehren 2021-04-25 21:28:18 +02:00 committed by GitHub
commit 59f669e593
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -94,7 +94,7 @@ module.exports = function (sequelize, DataTypes) {
let body = null
let filePath = null
if (note.alias) {
filePath = path.join(config.docsPath, note.alias + '.md')
filePath = path.join(config.docsPath, path.basename(note.alias) + '.md')
}
if (!filePath || !Note.checkFileExist(filePath)) {
filePath = config.defaultNotePath
@ -196,7 +196,7 @@ module.exports = function (sequelize, DataTypes) {
}
}).then(function (note) {
if (note) {
const filePath = path.join(config.docsPath, noteId + '.md')
const filePath = path.join(config.docsPath, path.basename(noteId) + '.md')
if (Note.checkFileExist(filePath)) {
// if doc in filesystem have newer modified time than last change time
// then will update the doc in db
@ -238,7 +238,7 @@ module.exports = function (sequelize, DataTypes) {
return callback(null, note.id)
}
} else {
const filePath = path.join(config.docsPath, noteId + '.md')
const filePath = path.join(config.docsPath, path.basename(noteId) + '.md')
if (Note.checkFileExist(filePath)) {
Note.create({
alias: noteId,