UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

56 lines (45 loc) • 1.21 kB
# Python Security # Detects file access APIs used with dynamic path expressions. id: python-path-traversal name: Path Traversal Risk severity: warning category: security defect_class: injection inline_tier: warning language: python message: "Potential path traversal sink — sanitize and constrain file paths" description: | File operations with user-controlled paths can access unintended files. ✅ FIX: normalize paths and enforce a fixed base directory allowlist. query: | [ (call function: (identifier) @FN arguments: (argument_list [(identifier) (binary_operator) (call)] @PATH)) (call function: (attribute object: (identifier) @MOD attribute: (identifier) @FN) arguments: (argument_list [(identifier) (binary_operator) (call)] @PATH)) ] (#match? @FN "^(open|read_text|read_bytes|write_text|write_bytes|remove|unlink|rmdir)$") metavars: - MOD - FN - PATH post_filter: py_path_traversal_sink has_fix: false tags: - python - security - path-traversal - cwe-22 - owasp-a01 examples: bad: | open(base + user_path) good: | safe = os.path.normpath(user_path) open(os.path.join(BASE_DIR, safe))