SiteShadow
Back to vulnerability library

CWE-22 Path Traversal

What this means

SiteShadow detected a path construction pattern where untrusted input may control what file is read or written.

Why it matters

Safer examples

1) Map IDs to known files (instead of accepting paths)

const files = {
  invoice: "/srv/reports/invoice.csv",
  summary: "/srv/reports/summary.json",
};
const path = files[req.query.type] ?? files.summary;

2) Normalize + enforce a base directory

from pathlib import Path

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

3) Validate file extensions only as an extra check

Extensions help but are not enough on their own. Prefer allowlists and base-dir enforcement.

How SiteShadow detects it (high level)

References

---

← Back to Vulnerability Library

Request access View coverage