← Back to scan
File as GitHub Issue repo: NousResearch/hermes-agent

Push this scan report to NousResearch/hermes-agent

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Secret Printed to Logs

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
HIGH SEC018 [SEC018] AI-Agent Secret Retrieval Command: A command that prints or embeds credentials w… hermes_cli/main.py:4167
HIGH SEC018 [SEC018] AI-Agent Secret Retrieval Command: A command that prints or embeds credentials w… hermes_cli/models.py:936
HIGH SEC018 [SEC018] AI-Agent Secret Retrieval Command: A command that prints or embeds credentials w… tools/skills_hub.py:175
HIGH DKR001 Docker final stage runs as root Dockerfile:101
HIGH SEC020 [SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-b… hermes_cli/webhook.py:179
HIGH DKC002 Compose service uses host networking docker-compose.yml:57
HIGH DKC002 Compose service uses host networking docker-compose.yml:24
HIGH SEC020 [SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-b… scripts/sample_and_compress.py:144
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. optional-skills/mcp/fastmcp/templates/d…:68
HIGH AGT002 LLM memory extraction can be prompt-injected into storing fake facts gateway/session.py:302
HIGH SEC013 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat… hermes_cli/models.py:2568
HIGH SEC013 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat… tools/browser_supervisor.py:88
HIGH SEC013 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat… trajectory_compressor.py:1378
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… plugins/kanban/dashboard/plugin_api.py:1005
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… plugins/kanban/dashboard/plugin_api.py:759
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… plugins/kanban/dashboard/plugin_api.py:583
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… plugins/kanban/dashboard/plugin_api.py:470
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… hermes_cli/web_server.py:2596
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… hermes_cli/web_server.py:2587
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… hermes_cli/web_server.py:2578
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… hermes_cli/web_server.py:2569
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… hermes_cli/web_server.py:2560
HIGH AUC003 [AUC003] Object-level route lacks visible authorization: A route with an object id-like p… hermes_cli/web_server.py:2539
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. tools/file_operations.py:859
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. acp_adapter/tools.py:804
MED SEC014 [SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing ma… optional-skills/research/domain-intel/s…:94
MED ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. web/src/pages/EnvPage.tsx:503
MED ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. web/src/hooks/useSidebarStatus.ts:19
MED ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. scripts/whatsapp-bridge/bridge.js:627
MED SEC012 [SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation all… scripts/install_psutil_android.py:86
MED SEC012 [SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation all… agent/curator_backup.py:613
MED SEC012 [SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation all… hermes_cli/main.py:6274
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… model_tools.py:136
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… hermes_state.py:401
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… hermes_logging.py:387
MED DKR003 Compose service `homeserver` image uses the latest tag tests/e2e/matrix_xsign_bootstrap/docker…:1
MED AUC001 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks…
MED DKR002 Compose service `dashboard` image has no explicit tag docker-compose.yml:57
MED DKR002 Compose service `gateway` image has no explicit tag docker-compose.yml:24
MED WEB003 Public web service has no security.txt .well-known/security.txt
MED DKR014 Dockerfile copies broad context with incomplete .dockerignore Dockerfile:83
MED JRN003 Frontend API reference is not matched by discovered backend routes web/src/lib/api.ts:6
MED AUC002 [AUC002] Low visible authorization coverage in route inventory: Only 24.7% of discovered …
MED AGT014 Codex auth.json is read or copied without visible secret-file hardening hermes_cli/setup.py:529
MED AGT014 Codex auth.json is read or copied without visible secret-file hardening hermes_cli/models.py:104
MED AGT014 Codex auth.json is read or copied without visible secret-file hardening hermes_cli/model_switch.py:1316
MED AGT014 Codex auth.json is read or copied without visible secret-file hardening hermes_cli/doctor.py:801
MED AGT014 Codex auth.json is read or copied without visible secret-file hardening agent/credential_sources.py:7
MED AUC012 [AUC012] FastAPI interactive docs may be exposed by framework defaults: FastAPI exposes /…
MED AGT012 Agent control bridge may listen on a network interface without visible auth plugins/platforms/line/plugin.yaml:35
MED AGT012 Agent control bridge may listen on a network interface without visible auth gateway/platforms/wecom_callback.py:3
MED AGT012 Agent control bridge may listen on a network interface without visible auth gateway/platforms/webhook.py:57
MED AGT012 Agent control bridge may listen on a network interface without visible auth gateway/platforms/telegram.py:721
MED AGT015 Remote install command pipes network code directly to a shell plugins/memory/hindsight/__init__.py:678
MED AGT015 Remote install command pipes network code directly to a shell plugins/memory/byterover/plugin.yaml:6
MED AGT015 Remote install command pipes network code directly to a shell plugins/memory/byterover/__init__.py:10
MED AGT015 Remote install command pipes network code directly to a shell plugins/memory/byterover/README.md:9
MED AGT015 Remote install command pipes network code directly to a shell optional-skills/devops/cli/references/c…:6
MED AGT015 Remote install command pipes network code directly to a shell optional-skills/devops/cli/references/a…:6
MED AGT015 Remote install command pipes network code directly to a shell hermes_cli/uninstall.py:669
MED AGT015 Remote install command pipes network code directly to a shell hermes_cli/memory_setup.py:108
MED AGT015 Remote install command pipes network code directly to a shell README.zh-CN.md:34
MED AGT015 Remote install command pipes network code directly to a shell README.md:36
MED AGT015 Remote install command pipes network code directly to a shell .github/ISSUE_TEMPLATE/setup_help.yml:35
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:2539
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:2533
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:2447
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:2313
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:2285
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:2247
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:1543
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:1511
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:1242
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … hermes_cli/web_server.py:1228
MED AGT013 Agent auto-approve or skip-permissions mode is easy to enable skills/autonomous-ai-agents/hermes-agen…:71
MED AGT013 Agent auto-approve or skip-permissions mode is easy to enable skills/autonomous-ai-agents/claude-code…:92
MED AGT013 Agent auto-approve or skip-permissions mode is easy to enable hermes_cli/tips.py:74
MED AGT013 Agent auto-approve or skip-permissions mode is easy to enable hermes_cli/main.py:82
MED AGT013 Agent auto-approve or skip-permissions mode is easy to enable hermes_cli/config.py:1174
MED AGT013 Agent auto-approve or skip-permissions mode is easy to enable hermes_cli/_parser.py:171
MED DKC007 Compose service contains a literal secret environment value tests/e2e/matrix_xsign_bootstrap/docker…:1
MED SEC005 [SEC005] Command Injection Risk: Unsafe shell execution or eval of user input. tui_gateway/server.py:6608
MED SEC005 [SEC005] Command Injection Risk: Unsafe shell execution or eval of user input. hermes_cli/tools_config.py:637
MED SEC005 [SEC005] Command Injection Risk: Unsafe shell execution or eval of user input. tools/transcription_tools.py:518
LOW WEB005 robots.txt does not advertise a sitemap agent/anthropic_adapter.py
LOW DKR008 .dockerignore misses sensitive defaults .dockerignore
LOW DKC010 Compose service lacks no-new-privileges hardening tests/e2e/matrix_xsign_bootstrap/docker…:1
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yml:24
LOW DKC006 Compose service does not declare a runtime user tests/e2e/matrix_xsign_bootstrap/docker…:1
LOW DKC006 Compose service does not declare a runtime user docker-compose.yml:24
Reset to top 5 90 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `NousResearch/hermes-agent`

**Score: 54/100 (C)**  ·  104 findings  ·  scanned 2026-05-15 21:54 UTC  ·  913,413 LOC

| Severity | Count |
|---|---|
| CRITICAL | 0 |
| HIGH | 25 |
| MEDIUM | 59 |
| LOW | 6 |

📊 [Full filterable report](https://repobility.com/scan/f147006d-3e31-4d72-987e-20aa37b5fe4f/)  ·  ![scorecard](https://repobility.com/scan/f147006d-3e31-4d72-987e-20aa37b5fe4f/report.png?v=1778882054-s2)

### Top findings

1. **HIGH** `SEC018` — AI-Agent Secret Retrieval Command
   `hermes_cli/main.py:4167` · A07:2021 Identification & Authentication Failures
2. **HIGH** `SEC018` — AI-Agent Secret Retrieval Command
   `hermes_cli/models.py:936` · A07:2021 Identification & Authentication Failures
3. **HIGH** `SEC018` — AI-Agent Secret Retrieval Command
   `tools/skills_hub.py:175` · A07:2021 Identification & Authentication Failures
4. **HIGH** `DKR001` — Docker final stage runs as root
   `Dockerfile:101`
5. **HIGH** `SEC020` — Secret Printed to Logs
   `hermes_cli/webhook.py:179` · A07:2021 Identification & Authentication Failures

---

**Security note**: this issue is public. If any flagged finding is a real, exploitable vulnerability, please redirect to your `SECURITY.md` policy or open a [private security advisory](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) instead. We're happy to close this and re-submit privately.

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/f147006d-3e31-4d72-987e-20aa37b5fe4f/_
Already filed
This repo publishes a SECURITY.md policy and the scan contains 21 Critical/High security finding(s). Public issue filing would violate coordinated disclosure. Submit privately via the project's security reporting channel.
Megaproject â high spam risk
Could not determine 'NousResearch/hermes-agent' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.