Phase
Phase 1 — Critical Security | Track 1.1 — Input Boundary Enforcement | Priority: P0 HIGH
Vulnerability Details
File: operator_use/web/tools/browser.py:272-284
CWE: CWE-22, CWE-20
The download browser action has three vulnerabilities:
- Path traversal in filename —
filename can be ../../.bashrc
- No URL scheme validation — accepts
file://, ftp://, gopher://
- No size limits — can cause disk exhaustion
Fix
- Validate URL scheme (http/https only)
- Sanitize filename with
os.path.basename(), reject ..
- Verify resolved download path stays within downloads directory
- Add configurable max download size (default 100MB)
- Check
Content-Length header before downloading
Acceptance Criteria
References
Phase
Phase 1 — Critical Security| Track 1.1 — Input Boundary Enforcement | Priority: P0 HIGHVulnerability Details
File:
operator_use/web/tools/browser.py:272-284CWE: CWE-22, CWE-20
The
downloadbrowser action has three vulnerabilities:filenamecan be../../.bashrcfile://,ftp://,gopher://Fix
os.path.basename(), reject..Content-Lengthheader before downloadingAcceptance Criteria
References
docs/plans/2026-03-29-security-ai-guardrails-performance-design.md