mirror of
https://github.com/usestrix/strix.git
synced 2026-08-25 04:12:37 +02:00
feat(safety): attach input-redirect data files, and scope subdomains
Two guarded-mode false-positives from a recon run. A command that reads a workspace data file — `while read host; do dig "$host"; done < hosts_passive.txt` — reached the reviewer with an empty artifact list, because the evidence compiler only collects script entrypoints and their Python imports, never a data file consumed via input redirection. The reviewer, asked whether the queried hosts were in scope, had no way to see them and fail-closed on unresolved scope. Parse single `<` input redirections (not `<<` heredocs or `<(` process substitution) and attach each workspace-resident file as an artifact with role "input", bounded by max_artifact_bytes and flagged when truncated. Files outside /workspace are not read. Separately, the reviewer treated scope as the exact authorized host, so it blocked resolving admin.fiuu.com under an authorized fiuu.com. State in the prompt that an authorized domain covers its subdomains, and point the reviewer at the new role "input" artifacts for scope checks. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,13 @@ A command that runs code Strix cannot resolve to an inspectable script — an
|
||||
unrecognized interpreter, or an interpreter given no script — is blocked rather
|
||||
than reviewed against an empty evidence packet.
|
||||
|
||||
When a command reads a workspace data file through input redirection (for
|
||||
example a host list consumed by `while read … done < hosts.txt`), that file's
|
||||
contents are attached to the packet so the reviewer can check the entries —
|
||||
queried hosts, fuzz inputs — against scope instead of blocking because it can't
|
||||
see them. Only workspace-resident files are read; an oversize file is attached
|
||||
truncated. An authorized domain covers its subdomains.
|
||||
|
||||
Browser automation inside scripts is blocked in safety modes. Issue browser
|
||||
operations as individual raw `agent-browser` commands so each action can be
|
||||
reviewed against the current snapshot and element references.
|
||||
|
||||
Reference in New Issue
Block a user