NeuralTrust has been recognized by Gartner → Read more
Back

Hermes Agent Security: Risks and CVEs

Roger Howroyd October 26, 2026
Share
Hermes Agent Security: Risks and CVEs

Last updated: October 26, 2026

Is Hermes Agent safe to run? Hermes Agent, the open-source agent from Nous Research, can be run safely, but only with deliberate setup: explicit allowlists, a container or remote terminal backend, manual command approval and current versions. The project's own security policy says the only security boundary against an adversarial model is the operating system. The GitLab Advisory Database lists ten advisories for the package as of October 26, 2026.

This guide covers what the agent does, where its attack surface sits, the CVEs checked against primary records, the OWASP 2026 mapping and a safe-setup checklist from the project's documentation. Anything unverified is labeled as such.

TL;DR: Key Takeaways

  • The GitLab Advisory Database lists 10 advisories for the hermes-agent package, and other records add more (GitLab Advisory Database, 2026).
  • The most severe is CVE-2026-82021, scored 9.0 (critical) on CVSS v4.0: a supply chain flaw in the bundled MCP catalog, fixed in 0.19.0 and 2026.7.20 (CVE record, published August 28, 2026).
  • Hermes Agent offers 7 terminal backends, and the Docker, Modal, Daytona and Vercel Sandbox backends skip command approval because the container is treated as the boundary (Hermes Agent docs, 2026).
  • The project's security policy offers 2 OS-level isolation options and treats in-process controls such as the approval gate as heuristics. It places prompt injection alone out of scope (SECURITY.md, 2026).
  • The advisories map to 4 of the 10 entries in the OWASP LLM Top 10 2026 (LLM01 to LLM04) (OWASP GenAI Security Project, 2026).
  • The project's hardening guidance runs to 11 steps, led by explicit allowlists and a container or remote backend (Hermes Agent docs, 2026).

Hermes Agent security at a glance

SurfaceWhat Hermes Agent does thereDocumented issue classMain control
Terminal and code executionRuns shell commands and execute_code on one of 7 backendsEnvironment handling (CVE-2026-9368)Container or remote backend, manual approvals
Context, memory and skillsReads project files, stores memory, writes its own skillsInjection through prompt, memory and skill scanners (CVE-2026-9366, 9353, 10223)Skills Guard, skill review, isolation
Messaging gatewayTakes instructions from chat channelsCaller authorizationAllowlists, DM pairing
HTTP and WebSocket endpointsServes a dashboard, an API and webhooksMissing authentication, DNS rebinding (CVE-2026-7112, 7113, 53869)Keep off the public internet
Files on diskStores sessions, webhook subscriptions and secretsWorld-readable permissions (CVE-2026-53870)Upgrade, restrict file modes
Supply chainInstalls an MCP catalog, skills, plugins and itselfMutable branch reference (CVE-2026-82021)Review, pin, update

What Is Hermes Agent and What Does It Do?

Hermes Agent is an open-source, MIT-licensed Python agent from Nous Research. It runs on your own machine or server, remembers past sessions, writes reusable skills and takes instructions from chat apps. It can also run shell commands and schedule jobs, so its security posture matters more than a chat assistant's.

The code lives in the NousResearch/hermes-agent repository, which showed about 252,000 GitHub stars when checked on October 26, 2026. This article is about that agent. It is unrelated to the Hermes family of language models that Nous Research also publishes.

Core capabilities

According to the project's README (2026), Hermes Agent combines pieces that most agent frameworks sell separately. Each one creates its own risk.

CapabilityWhat the README describesWhy it matters for security
Agent-curated memoryMemory the agent maintains, with full-text search across past sessionsStored text is replayed into later prompts, so one poisoned entry persists
Self-created skillsSkills the agent writes, compatible with the agentskills.io formatSkills run with full agent privileges once installed
SchedulerA built-in cron schedulerJobs run unattended, with no person to approve a command
Terminal backendsLocal, Docker, SSH, Singularity, Modal, Daytona and Vercel SandboxThe backend decides how much a bad command can damage
MCP and subagentsMCP server integration and delegated subagentsEach tool server and subagent extends the trust boundary

Installation is a one-line shell command (a PowerShell equivalent exists for Windows), followed by hermes setup and hermes doctor. That convenience is common for open-source tools, but it means you trust the script and the repository at install time.

The security policy describes Hermes Agent as a single-tenant personal agent: one owner, one trust domain, and an operating system that acts as the real boundary. Teams that serve several users, or point it at untrusted content, are outside that model.

Try our AI Gateway today for free

Attack Surface: Where a Self-Hosted Agent Can Be Abused

The attack surface of an agent like Hermes is wider than a chat app's because one process combines shell access, persistent memory, installable skills, messaging channels and network endpoints. Each is a separate entry point, and several are trusted by default, so your exposure depends largely on how you configure it.

Terminal and code execution

Hermes puts a command approval system in front of risky commands. According to the Hermes Agent documentation (2026), the default smart mode asks an auxiliary model to rate each command. Manual mode asks you every time. Off mode disables the checks, the same as the --yolo flag. Cron jobs, single-query runs and webhook sessions deny dangerous commands by default, because nobody is present to answer. A hardline blocklist refuses catastrophic commands such as root filesystem wipes under every setting.

The limits matter more than the features. The security policy calls the approval gate, output redaction, pattern scanners and skill scanning heuristics, not containment. It also states that code execution, MCP, plugins, hooks and skills still run in the host Python process when only the terminal is sandboxed. Terminal isolation therefore covers shell and file operations, not the whole agent.

Context, memory and skills

Hermes reads project context files such as AGENTS.md, keeps searchable memory and installs skills. Each is text that the model treats as instructions or trusted context. The documentation says context files are scanned for prompt injection and blocked on a match, and that Skills Guard scans skills for suspicious environment access before install.

Those scanners have had their own flaws. CVE-2026-9366 sits in the prompt builder's context scan, CVE-2026-9353 in Skills Guard and CVE-2026-10223 in the memory scanner. Persistence is the multiplier: a poisoned memory entry or skill outlives the session that created it.

Messaging gateways and credentials

A gateway turns every connected chat account into a control channel. The documentation describes a default-deny model: with no allowlists configured, all users are denied, and unknown direct-message senders can receive a short-lived pairing code that the owner approves from the command line.

Credentials are the other half. API keys and platform tokens live in the agent's environment files. Sensitive variables are stripped from execute_code and terminal child processes by default, and credential files are mounted read-only into containers. Two CVEs show where that handling slipped: CVE-2026-9368 on environment handling in code execution, and CVE-2026-53870 on files left readable by other local users.

Network endpoints

Hermes includes a web dashboard, an API server and webhook receivers. CVE-2026-7112 and CVE-2026-7113 concern missing authentication on the API server and webhooks. CVE-2026-53869 is a DNS rebinding flaw. It let remote attackers bypass Host and Origin checks on WebSocket endpoints, including a terminal channel, because the HTTP middleware does not run on WebSocket upgrades.

The project's guidance is blunt: do not expose the gateway or API to the public internet without a VPN, Tailscale or a firewall.

Supply chain and installer

Skills and plugins run with full agent privileges, and the policy tells operators to review them, including the Python code and scripts, not only the skill description file. CVE-2026-82021 shows the other side: the bundled MCP catalog pointed at a third-party repository by a mutable branch instead of a pinned commit. For background on why tool servers deserve this scrutiny, see our guide to what an MCP server is.

Hermes Agent CVEs and Advisories: What Is Documented

As of October 26, 2026, the GitLab Advisory Database lists ten advisories for the hermes-agent package, and other records add more. The table covers twelve CVEs checked against advisory records. Nine list a fixed version between 0.11.0 and 0.19.0, and three do not state one.

CVEIssueAffectedFixedPublished
CVE-2026-82021MCP catalog supply chain flaw via a mutable branch reference (CWE-494)0.18.2 up to 0.19.0 and 2026.7.7.2 up to 2026.7.200.19.0 and 2026.7.20Aug 28, 2026
CVE-2026-53869DNS rebinding on WebSocket endpoints bypasses Host and Origin validationBefore 0.16.00.16.0Jun 17, 2026
CVE-2026-53870Response store and webhook subscription files created with mode 0o644, exposing conversation history and HMAC secretsBefore 0.16.00.16.0Jun 17, 2026
CVE-2026-10222Injection in environment line sanitizing (_sanitize_env_lines)Before 0.18.00.18.0Jun 1, 2026
CVE-2026-10223Injection in memory content scanning (_scan_memory_content)Before 0.15.00.15.0Jun 1, 2026
CVE-2026-9353Injection in Skills Guard threat patternsBefore 0.15.00.15.0May 26, 2026
CVE-2026-9366Injection in context scanning (_scan_context_content)Before 0.15.00.15.0May 26, 2026
CVE-2026-9369Incorrect comparison in dashboard plugin discovery (HERMES_ENABLE_PROJECT_PLUGINS)Before 0.15.00.15.0May 26, 2026
CVE-2026-9368Environment handling in execute_code (CWE-269, CWE-526)Before 0.11.00.11.0May 2026
CVE-2026-7112Authentication check flaw in the API serverListed as 0.8.0, full range not statedNot statedApr 27, 2026
CVE-2026-7113Webhook endpoint with missing authenticationListed as 0.8.0, full range not statedNot statedApr 27, 2026
CVE-2026-14628Path traversal in gateway media extraction (extract_media)Up to 2026.5.16Not statedJul 4, 2026

How to read the table

The project uses two version schemes, semantic versions such as 0.16.0 and date-based tags such as 2026.7.20, and advisories mix them. Where a record states both, the table shows both. The dates are publication dates in the advisory databases, not discovery dates; for CVE-2026-82021 the CVE record gives July 14, 2026 as the date the issue became public.

Severity scores for the same CVE differ between databases because each scorer applies its own vector. The table therefore leaves scores out, except for the critical one in the CVE record. Two further entries, CVE-2026-10221 and CVE-2026-10224, appear in the GitLab database with conflicting or missing version data, so this article does not rely on them.

According to the CVE record for CVE-2026-82021 (2026), a compromised third-party repository could reach every host that installed the affected catalog entry, with no action by the operator. The record also lists CVSS v3.1 8.3 and names VulnCheck as the CNA.

What the CVEs have in common

Three patterns recur: scanners for context, memory and skills were bypassable, network-facing pieces lacked strong authentication in early versions, and defaults on disk and in the catalog trusted too much.

The practical rule is to run the newest release: the highest fixed version in the table is 0.19.0, or 2026.7.20 on the date-based scheme. For the three entries with no stated fix, check the release notes for your version rather than assuming you are covered.

OWASP Mapping: LLM Top 10 2026 and the Agentic Top 10

Hermes risks map onto the OWASP Top 10 for LLM Applications 2026 mainly through LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure, LLM03 Excessive Agency and LLM04 Supply Chain. On the agentic list they land on goal hijack, tool misuse, identity and privilege abuse, supply chain, unexpected code execution and memory poisoning.

According to the OWASP GenAI Security Project (2026), the Agentic Top 10 runs from ASI01 Agent Goal Hijack to ASI10 Rogue Agents.

Hermes riskEvidenceOWASP LLM Top 10 2026OWASP Agentic Top 10
Hostile text in context files, memory or skills steers the agentCVE-2026-9366, 9353, 10223LLM01 Prompt InjectionASI01 Agent Goal Hijack, ASI06 Memory & Context Poisoning
Environment and files expose secrets or historyCVE-2026-9368, 53870LLM02 Sensitive Information DisclosureASI03 Identity & Privilege Abuse
Shell and code execution with broad rightsApproval modes, --yolo, host-process executionLLM03 Excessive AgencyASI02 Tool Misuse & Exploitation, ASI05 Unexpected Code Execution
Unauthenticated or rebindable endpoints reach the terminalCVE-2026-7112, 7113, 53869LLM03 Excessive AgencyASI03 Identity & Privilege Abuse
Catalog, skills, plugins and installerCVE-2026-82021LLM04 Supply ChainASI04 Agentic Supply Chain Vulnerabilities
Approval prompts answered by habitSmart and manual modes depend on a personLLM03 Excessive AgencyASI09 Human-Agent Trust Exploitation

Two entries are left out on purpose. LLM06 Unbounded Consumption would fit CVE-2026-10224, but that record's version data conflicts. LLM08 Hidden Context Exposure has no verified Hermes advisory behind it; the history exposed by CVE-2026-53870 maps to LLM02.

The mapping also shows a gap between OWASP and the project. OWASP ranks prompt injection first. The Hermes security policy treats it as out of scope unless it breaks the stated trust model. Both positions are defensible for a personal tool, and they are why a team deployment needs controls that sit outside the agent.

Safe Setup Checklist From the Project's Own Docs

A safe Hermes setup matches isolation to the trustworthiness of the content the agent reads. For untrusted input, run the whole process in a sandbox. For everything else, use explicit allowlists, a container or remote terminal backend, manual or smart approvals, and a patched release, and keep the gateway off the public internet.

According to the Hermes Agent security documentation (2026), the recommended hardening runs to 11 steps. The work-machine guide adds a shorter sequence, and the security policy adds deployment rules. The table merges them and marks the one item that is our addition. In the source column, Docs is the security page, Guide is the work-machine guide and Policy is SECURITY.md.

StepSetting or actionWhySource
1Set explicit allowlists, never allow-all in productionWith no allowlist, all users are denied by defaultDocs
2Use a container or remote backend (docker or ssh)Keeps commands off the hostDocs, guide
3Set approvals.mode to manual or smart, avoid YOLO and offKeeps a person in the loopDocs, guide
4Add approvals.deny rulesBlocks listed commands even under YOLOGuide
5Set HERMES_WRITE_SAFE_ROOTConfines write_file and patch to chosen foldersGuide
6Leave docker_forward_env emptyKeeps host secrets out of the containerGuide
7Prefer DM pairing to hardcoded user IDsShort-lived, rate-limited approval codesDocs
8Run the gateway as a non-root userLimits damage from a compromiseDocs, policy
9Keep .env at chmod 600 and out of version controlProtects keys and tokensDocs
10Restrict terminal.cwd away from sensitive directoriesReduces reachable filesDocs
11Audit command_allowlist, ~/.hermes/hooks/ and logsHooks run in-process with no consent stepDocs
12Keep Hermes updated, and consider security.allow_lazy_installs falseFixes ship in releases; limits runtime installsDocs
13Check the release notes against the CVE table aboveOur addition, so versions and fixes matchOurs

Two more points come from the security policy. Keep credentials in a restricted operator file, and review third-party skills, including their Python code, before installing them.

Turn on checkpoints as well: snapshots before destructive operations let you revert with /rollback, and /rollback diff <N> previews the changes first. One caution from the work-machine guide applies to the whole checklist. These controls guard against an agent that is wrong, not one that is deliberately adversarial, so use an isolated backend for real containment.

Security and Governance: What a Runtime Layer Adds

A runtime layer adds what a personal agent does not ship with: central identity, per-tool policy, inspection of prompts and tool calls, and a tamper-resistant record of what the agent did. These controls run outside the agent's own process, so a bypassed in-process scanner does not remove them.

The risks line up with the OWASP lists above. Prompt injection (LLM01) is how hostile text reaches memory, skills or the terminal. Sensitive information disclosure (LLM02) covers keys and history. Excessive agency (LLM03) turns a successful injection into a command. The Hermes policy is explicit that its approval gate and scanners are heuristics. That is a fair position for a single-tenant tool, and an enterprise should read it as a design requirement: the missing controls have to come from somewhere else.

Four controls matter most for an organization that allows employees to run self-hosted agents like this one:

  1. Identity and access. Know which agents exist, who owns them and which credentials they hold. The authorization patterns in our guide to MCP authentication apply directly to tool servers behind a Hermes deployment.
  2. Policy at the tool call. Decide per tool and per argument what an agent may do, instead of trusting a model to refuse.
  3. Inspection and logging. Record prompts, tool calls and results where the agent cannot rewrite them.
  4. Testing before and after rollout. Probe the agent with injection and tool-misuse attacks, and repeat after each upgrade.

NeuralTrust is a Barcelona-based AI agent security company, and its Runtime Security Mesh is built for this layer. Agent Gateway (TrustGate) is designed to sit between agents and the models and MCP servers they call, so policy and logging do not depend on the agent's process. Agent Runtime Security (TrustGuard) inspects agent behavior at runtime. Agent Posture Management (TrustLens) helps inventory agents and their permissions, and AI Red Teaming (TrustTest) tests them against attacks such as prompt injection. For the human side of approvals, see our guide to human-in-the-loop AI agents.

Which Setup Should You Choose?

Choose by who the agent serves and what it reads. A personal experiment can accept more risk than a shared gateway. An agent that reads email, web pages or chat messages should always run in a container or a wrapped process.

ScenarioMinimum setupAvoid
Local experiment, no messaging, trusted files onlySmart or manual approvals, current release, HERMES_WRITE_SAFE_ROOT setYOLO mode, public endpoints
Work machineManual approvals, approvals.deny rules, docker or ssh backend, empty docker_forward_env, checkpointsLocal backend, forwarded host secrets
Always-on gateway with chat channelsContainer, allowlists or DM pairing, non-root user, VPN or firewall, restricted credential fileAllow-all, public API, shared bot tokens
Reads untrusted content (web, email, multi-user channels, untrusted MCP)Whole-process wrapping in Docker or Compose, or NVIDIA OpenShellTerminal-only isolation
Shared or enterprise deploymentWhole-process isolation plus external gateway, identity, logging and red teamingTreating the single-tenant model as multi-user

Conclusion

Hermes Agent is a capable self-hosted agent whose maintainers are open about its limits: in-process controls are heuristics, and the operating system is the boundary. The verified record shows fixes shipping across 0.11.0 to 0.19.0, so a current release inside a container, with allowlists and manual approvals, is a defensible baseline. Teams should add controls outside the agent before they scale it.

Secure Self-Hosted Agents in Production with NeuralTrust

Put policy, inspection and audit between your agents and the tools they can reach.

Try our AI Gateway today for free

Related Reading

FAQs about Hermes Agent Security

1. Is Hermes Agent safe to use?

It can be, with the right setup. The project documents command approval, default-deny user access and container isolation, and it has shipped fixes for most of its published CVEs. Its security policy still says the operating system is the only boundary against a hostile model. Use a container, allowlists, manual approvals and the latest release.

2. What CVEs affect Hermes Agent?

Twelve CVEs are covered above, from CVE-2026-9368 (before 0.11.0) to CVE-2026-82021, the critical MCP catalog supply chain flaw fixed in 0.19.0 and 2026.7.20. Nine list a fixed version. Three, CVE-2026-7112, CVE-2026-7113 and CVE-2026-14628, do not state one, so check the release notes for your version.

3. Does Hermes Agent run commands on my computer?

Yes, if you choose the local terminal backend. Hermes can run shell commands through seven backends, including Docker, SSH and Modal. On the local backend the commands run as your user, behind an approval gate that the project calls a heuristic. A container or remote backend keeps commands off the host.

4. How do I secure the Hermes Agent messaging gateway?

Set explicit allowlists or use DM pairing, and never enable allow-all in production. With no allowlist, the default is to deny all users. Run the gateway as a non-root user and keep tokens in a restricted credential file. Do not expose the gateway or API to the public internet without a VPN or firewall.

5. Should I run Hermes Agent in Docker?

For most uses, yes. The documentation recommends a container or remote backend over the host, and Docker containers drop nearly all Linux capabilities and cap resources. Note that terminal-only isolation leaves MCP, plugins, hooks and skills in the host process. When the agent reads untrusted content, wrap the whole process instead.

6. Can prompt injection compromise Hermes Agent?

Prompt injection can steer the agent through context files, memory, skills or web content, and several CVEs concern the scanners meant to catch it. The project places injection alone out of scope unless it breaks the trust model. Limit damage by isolating execution, requiring approvals and restricting credentials.

7. How do I track Hermes Agent security advisories?

Watch the repository's security advisories and release notes, and check the GitLab and GitHub advisory databases for the hermes-agent package. Record the version you run and compare it with the fixed versions in the CVE table after each release. Report any issue you find privately, not in a public issue.

About the Author

Roger Howroyd is Head of Global SEO and AI at NeuralTrust, where he leads the company's search strategy across SEO, AEO, GEO, and LLM optimization. He specializes in AI-powered search, content strategy, and SEM. Connect on LinkedIn.

NeuralTrust is the leading platform for securing and scaling AI agents. Named a Pioneer in the Gartner Emerging Market Quadrant for AI Application Security 2026, recognized across four Gartner Hype Cycle reports in 2026, and featured in the Gartner Market Guide for Guardian Agents 2026, the Gartner Market Guide for AI Gateways 2025 and the KuppingerCole Leadership Compass for Generative AI Defense 2025. Headquartered in Barcelona with offices in London and New York. ISO 27001 certified.

Sources

  1. NousResearch/hermes-agent README, GitHub, accessed October 26, 2026
  2. Hermes Agent security policy (SECURITY.md), GitHub, accessed October 26, 2026
  3. Hermes Agent docs: Security, accessed October 26, 2026
  4. Hermes Agent docs: Secure Hermes on a work machine, accessed October 26, 2026
  5. CVE record CVE-2026-82021, CVE Program, published August 28, 2026
  6. GitLab Advisory Database: hermes-agent (PyPI), accessed October 26, 2026
  7. GitHub Advisory Database: hermes-agent, accessed October 26, 2026
  8. OWASP Top 10 for LLM Applications 2026, OWASP GenAI Security Project, GitHub, accessed October 26, 2026
  9. GenAI and Agentic AI Exploit Roundup Q3 2026, OWASP GenAI Security Project, October 8, 2026

Subscribe to our newsletter

Share

Join the leaders securing the agent ecosystem

Get a Demo