返回 last30days-skill
baseline_findings.md
根目录 / tests / hermes / baseline_findings.md
1 # Hermes scan baseline — skills/last30days/ (real skills_guard.py, community source)
2
3 Measured 2026-07-06 against `fix/hermes-scan-safe-verdict` (off origin/main @ 3.11.0).
4 Verdict: **dangerous** — BLOCKED (community + dangerous; --force powerless).
5 Totals: 14 CRITICAL, 36 HIGH, 25 MEDIUM, 1 LOW (76 findings).
6
7 ## CRITICAL (14) — all clear-able (target: zero → caution)
8 - 7 exfiltration python_environ_get_secret os.environ.get("...API_KEY") reads (env boundary)
9 - 4 exfiltration ruby_env_secret Ruby ENV[] rule firing on Python `env[key]=` (env boundary + rename)
10 - 2 exfiltration env_exfil_httpx xquik.py:144,283 http.get(..., headers={"X-Api-Key": token}) (extract headers)
11 - 1 injection deception_hide SKILL.md:529 "do not tell the user a project file is active" (reword)
12
13 ## HIGH (36) — includes an UNAVOIDABLE structural finding
14 - 26 exfiltration python_os_environ any `os.environ` substring incl comments (env boundary; blocks SAFE)
15 - 4 priv-esc sudo_usage SKILL.md:374, last30days.py:34, env.py:247, health.py:148 ("sudo")
16 - 2 exfiltration node_process_env vendored bird-search JS (vendor exclude)
17 - 1 structural oversized_skill 1615KB > 1024KB limit ← BLOCKS SAFE (skill is legitimately ~1.5MB runtime)
18 - 1 exfiltration dump_all_env SKILL.md:327 "printenv ..." shell snippet
19 - 1 exfiltration context_exfil reddit.py:103 comment "include more context"
20 - 1 exfiltration ssh_dir_access youtube_yt.py:172 docstring "~/.ssh/config"
21
22 ## Feasibility conclusion
23 - SAFE (zero HIGH) requires clearing `oversized_skill`, which is only possible by .skillignore-ing
24 ~500KB of core runtime .py (evasive; contradicts R5) or shrinking the skill below 1MB (infeasible).
25 - CAUTION (zero CRITICAL) is cleanly reachable and honest; --force then installs.
26 - Structural limits: too_many_files 101>50 (MEDIUM, irrelevant); oversized_skill 1615KB>1024KB (HIGH).
27
27 lines MARKDOWN