SiteShadow
Back to vulnerability library

CWE-23 Relative Path Traversal

What this means

SiteShadow flagged a file path influenced by untrusted input where ../ (or similar) could be used to escape an intended directory.

Why it matters

Safer examples

1) Use allowlists (best default)

const allowed = new Set(["report.csv", "summary.json"]);
const name = allowed.has(req.query.name) ? req.query.name : "summary.json";

2) Normalize and enforce a base directory

from pathlib import Path

base = Path("/srv/reports").resolve()
candidate = (base / user_path).resolve()
if base not in candidate.parents:
    raise ValueError("Invalid path")

3) Don't accept file paths when an ID will do

Accept an ID, look up the file server-side, and never expose filesystem paths to clients.

How SiteShadow detects it (high level)

References

---

← Back to Vulnerability Library

Request access View coverage