fix(threat-scanner): close reviewer-noted ssh_access_write bypass shapes
Extend the write-verb alternation with mv/install/printf/dd/scp/rsync/ln, allow short option clusters between verb and path, and add a bare-leading- redirect branch (a > ~/.ssh/... line carries no verb word at all). Prose that names a write primitive before an SSH path still fails closed — a false positive costs a review, a false negative is a backdoor. (cherry picked from commit 4865b96ca3c8661c0ea6f5c479c198ccf68f86c4)
This commit is contained in:
@@ -80,7 +80,8 @@ _PATTERNS: List[Tuple[str, str, str]] = [
|
||||
|
||||
# ── Persistence / SSH backdoor (strict scope — memory + skills) ──
|
||||
(r'authorized_keys', "ssh_backdoor", "strict"),
|
||||
(r'(?:echo|cat|cp|tee|append|add|write|>>?)\s+[^\n]{0,512}(?:\$HOME/\.ssh|~/\.ssh)', "ssh_access_write", "strict"),
|
||||
(r'(?:echo|cat|cp|mv|dd|tee|install|printf|rsync|scp|ln|append|add|write|>>?)\s*(?:-[a-zA-Z]+\s+)*[^\n]{0,512}(?:\$HOME/\.ssh|~/\.ssh)', "ssh_access_write", "strict"),
|
||||
(r'(?m)^[^\n]{0,256}(?<![>a-z])>>?\s*(?:\$HOME/\.ssh|~/\.ssh)', "ssh_access_write", "strict"),
|
||||
(r'\$HOME/\.hermes/\.env|\~/\.hermes/\.env', "hermes_env", "strict"),
|
||||
(rf'{_MODIFY}(?:AGENTS\.md|CLAUDE\.md|\.cursorrules|\.clinerules)', "agent_config_mod", "strict"),
|
||||
(rf'{_MODIFY}\.hermes/(config\.yaml|SOUL\.md)', "hermes_config_mod", "strict"),
|
||||
|
||||
Reference in New Issue
Block a user