diff --git a/server/controllers/FileSystemController.js b/server/controllers/FileSystemController.js index edfd869c..39663d23 100644 --- a/server/controllers/FileSystemController.js +++ b/server/controllers/FileSystemController.js @@ -108,6 +108,11 @@ class FileSystemController { return res.sendStatus(404) } + if (!req.user.checkCanAccessLibrary(libraryFolder.libraryId)) { + Logger.error(`[FileSystemController] User "${req.user.username}" attempting to check path exists for library "${libraryFolder.libraryId}" without access`) + return res.sendStatus(403) + } + const filepath = Path.join(libraryFolder.path, directory) // Ensure filepath is inside library folder (prevents directory traversal) diff --git a/server/controllers/MiscController.js b/server/controllers/MiscController.js index 0e5ad141..c779bdd6 100644 --- a/server/controllers/MiscController.js +++ b/server/controllers/MiscController.js @@ -59,6 +59,12 @@ class MiscController { if (!library) { return res.status(404).send('Library not found') } + + if (!req.user.checkCanAccessLibrary(library.id)) { + Logger.error(`[MiscController] User "${req.user.username}" attempting to upload to library "${library.id}" without access`) + return res.sendStatus(403) + } + const folder = library.libraryFolders.find((fold) => fold.id === folderId) if (!folder) { return res.status(404).send('Folder not found')