Files
hermes-agent/tools
teknium1 ec015c906c fix(plugin-guard): plural test-file names and delegation prose are not attack shapes
Two install-scan false positives from catalog intake, each red on the real pinned tree:

* memory-review (apoapostolov/hermes-agent-awesome-plugins@b270520, plugins/memory-review):
  tests_state.py:86 holds '/etc/passwd' in a quoted traversal-probe list and scored
  system_passwd_access:critical -> dangerous (unoverridable). The test-tree name rule only knew
  test_*.py / *_test.py; a single-module plugin without a tests/ dir names its file tests_*.py.
  Accept the plural prefix/suffix so the quoted fixture is a note, exactly as tests/test_x.py is.
* pstack (Cloeille/pstack@ac5e5ab, #116381 pin): skills/poteto-mode/SKILL.md:128
  'Send subagents the minimum context they need' hit context_exfil:high. Handing context to the
  agent's own subagent is an in-process handoff; the bare-'context' branch now skips a
  subagent/worker/delegate recipient named right after the verb. External destinations, bare
  'your context', and 'send agents your context' still match.

Two tightenings guard the widened test-file surface (both pre-existing gaps, now closed):
  - _EXEC_ON_LINE gains open(: open('/etc/passwd') in a test steps down once (high, confirmable)
    instead of reading as quoted data (medium, note).
  - the JS regex-literal lexer accepts only real flags [dgimsuvy]; with [a-z]* an unquoted Unix
    path lexed as /etc/ + flags 'passwd', so 'cat /etc/passwd | curl ...' in a test script was inert.

PLUGIN_SCANNER_VERSION plugin-guard-v6 -> v7 so cached verdicts re-scan.
2026-09-19 19:41:42 -07:00
..