Hermes Supply-Chain Security Audits

Hermes includes security checks for dependency and supply-chain risk. The CLI can audit the active Python environment, plugin requirements, and pinned MCP server packages, while startup and doctor checks also surface curated advisories for known-compromised versions.

Official documentation: https://hermes-agent.nousresearch.com/docs/user-guide/security

CLI reference: https://hermes-agent.nousresearch.com/docs/reference/cli-commands

What an audit can and cannot prove

Run hermes security audit for an on-demand advisory scan. Treat findings as triage inputs: confirm the installed package and version, read the advisory, identify whether the vulnerable component is reachable in your configuration, then update or remove it.

A clean advisory scan is not a complete security review. It does not validate gateway authorization, tool permissions, network exposure, secret handling, or the behavior of arbitrary plugin code.

Audit checklist

  • Update the advisory data path before high-stakes review when supported.
  • Scan the active profile and the actual runtime environment.
  • Include plugin and pinned MCP dependency surfaces.
  • Record package name, installed version, advisory, and remediation.
  • Remove unused plugins and MCP servers.
  • Re-run tests after dependency updates.
  • Acknowledge only advisories that were read and addressed.
  • Pair dependency scanning with gateway, network, and tool-boundary review.

Pitfalls

  • Acknowledging a warning merely to make status output green.
  • Auditing one virtual environment while the gateway runs another.
  • Updating a transitive dependency without checking compatibility.
  • Assuming an unused vulnerable package is harmless forever.
  • Treating a clean package scan as proof the deployment is secure.

Verification steps

  1. Run hermes security audit in the environment used by the real gateway or agent.
  2. Run hermes doctor and compare curated advisory output.
  3. Resolve or document every finding with a named owner and decision.
  4. Restart the runtime after dependency changes.
  5. Re-run the audit and focused integration tests.
  6. Inspect enabled plugins, MCP servers, and lazy-install policy.
  7. Verify gateway authorization and exposed ports separately.