Using User Input Directly in File Paths Without Validation
Node.js applications construct file paths using user-controlled input without validation: fs.readFile(req.query.filename, callback) or fs.writeFile('/uploads/' + req.body.name, data). Attackers provide path traversal sequences like '../../../etc/passwd' to access files outside intended directory. User input from req.query, req.params, req.body, or file upload names gets directly concatenated into file paths. Applications assume users provide only legitimate filenames without considering malicious input. Path traversal allows reading sensitive files (configuration, credentials, source code), overwriting critical files, or accessing other users' data in multi-tenant applications. Even seemingly safe operations like reading uploaded files become vulnerable when filenames aren't validated.