Skip to content

fix(runner): close static scanner path bypasses - #41

Merged
steipete merged 1 commit into
mainfrom
fix/static-scanner-skip-bypasses
Aug 13, 2026
Merged

fix(runner): close static scanner path bypasses#41
steipete merged 1 commit into
mainfrom
fix/static-scanner-skip-bypasses

Conversation

@steipete

Copy link
Copy Markdown
Contributor

Summary

  • make static-scanner and direct judge-prompt exclusions type-aware, so regular files named .git, node_modules, vendor, or .venv are scanned while real directories remain excluded
  • traverse __pycache__ and emit explicit high-severity evidence for packaged Python bytecode instead of silently hiding it as a skipped directory
  • detect Python process-execution APIs so the exact .git payload from [Bug]: clawscan-static skips .git files (not just directories) (malicious skill example that bypasses this scanner) #40 produces a finding
  • carry both findings and bytecode omission markers into judge prompt evidence

The built-in judge workspace already copied __pycache__; the transitive blind spot was in scanner evidence and direct target.files rendering. This keeps the separate workspace .git exclusion intact so worktree pointers are not copied.

Proof

Commands run:

TMPDIR=/private/tmp go test -count=1 ./...
TMPDIR=/private/tmp go vet ./...
make docs-site
.agents/skills/autoreview/scripts/autoreview --mode local ...

All passed. The first default-TMPDIR suite run exposed an existing macOS /var versus /private/var alias assertion; rerunning with the canonical /private/tmp path passed every package.

Thanks @nedlir for the concrete bypass fixtures, and @Patrick-Erichsen for maintaining this scanner surface.

Fixes #39
Fixes #40

@clawsweeper

clawsweeper Bot commented Aug 13, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@steipete
steipete merged commit 9f6a6fb into main Aug 13, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant