
PEACH
Un cadre d’isolation des locataires
README says the agent "never gets a shell, never reads evidence or writes the workspace outside the audit log". Two gaps undercut that boundary. An agent that is steered by content inside hostile evidence (prompt injection) can use them.
-:run_clamav: ["clamscan", "-r", "--no-summary", target_path]run_strings, run_hashdeep, run_exiftool, run_ssdeep (extract/misc.py)yara scans (yara.py)run_mmls (extract/tsk.py)log2timeline (extract/plaso.py)
A path such as --log=/any/file becomes a flag.path_policy.resolve_allowed_path guards only list_directory and read_evidence_file, plus extract_to of extract_archive. Most other path-taking tools pass the raw string to the filesystem or a subprocess.evidence_root, which the agent itself sets through scan_evidence(evidence_path) without validation.Tested against main @ 10628fa with ClamAV 1.5.4, calling the real tool functions on a temporary case:
| Call | Result |
|---|---|
run_clamav(target_path="--log=<outside>/written-by-clamscan.log") | success; the log file is created outside every allowed root (and clamscan scans the server's working directory instead) |
run_clamav(target_path="--remove=yes") with an EICAR file in the server's cwd | success; the file is deleted |
read_evidence_file("/etc/hostname") | Access denied: path is outside allowed directories |
run_strings(target_path="/etc/hostname") | success; the host file is indexed and readable via search/get_raw_output |
scan_evidence("/etc", case_id="x"), then read_evidence_file("/etc/hostname") | success; the agent chose its own root |
A prompt-injected agent gets file write/append and deletion primitives through clamscan (--log, --remove, --move, --copy), plus the equivalent flags of the other tools. It can also read host files through any unguarded tool. Every call is still audited, but nothing prevents it.
The fix branch I will push to the temporary private fork handles part 1:
helpers.cli_path() rewrites a leading - to ./-….clamscan (--log= no longer creates a file).
Part 2 is a design choice for the maintainer, so I did not change it. Options:resolve_allowed_path to every path-taking tool.evidence_root from the CLI (for example alongside MULDER_CASE_ID) instead of taking it from scan_evidence.Source: NVD
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité afin d’évaluer votre niveau de risque et d’identifier les lacunes dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."