logo

Database

Typescript Path Traversal Vulnerability Express

Description

Detects path traversal vulnerabilities in Express.js applications where user-controlled input can be used to access files outside the intended directory structure. This vulnerability could allow attackers to read or access sensitive files on the server filesystem by using path traversal sequences like '../'.

Weakness:

063 - Lack of data validation - Path Traversal

Category: Unexpected Injection

Detection Strategy

    Identifies Express.js route handlers and middleware functions that handle file operations

    Checks if user-provided path parameters or query strings are used directly in file system operations without proper sanitization

    Flags cases where path parameters could contain directory traversal sequences that access files outside intended directories

    Reports issues when file paths are constructed using user input without validation or path normalization

Vulnerable code example

const express = require('express');
const fs = require('fs');
const app = express();

app.post('/files', (req, res) => {
    const sourceFile = '/tmp/upload.txt';
    const fileName = req.body.name;  // Attacker-controlled input
    // VULN: Path traversal possible via unvalidated fileName in path...

✅ Secure code example

const express = require('express');
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const app = express();

app.post('/files', (req, res) => {
    const sourceFile = '/tmp/upload.txt';...