Security
Hexr is a security product, so the useful page is not a badge wall. It is where to send a vulnerability, what the architecture does to limit damage, how we check our own code, and what we do not have yet.
Last updated 22 September 2026
Reporting a vulnerability
Email [email protected]. Please do not open a public issue.
We acknowledge within two business days, and the first reply carries a remediation timeline rather than a promise to look into it.
What the architecture does about blast radius
These are properties of how Hexr runs, not policies we promise to follow.
- Your evidence stays in your cluster. It is written to a database you own. We hold no credential for it, so a compromise of Hexr does not expose it.
- Each tenant has its own root of trust. Separate roots with different fingerprints, so a signature from one tenant cannot verify against another.
- Agent identities last four hours and are bound to a single operating-system process. There is no long-lived key to steal and no shared account to borrow.
- Agents hold no cloud credentials. They present their identity at the moment of a call and receive short-lived credentials for that call. A process with no identity is refused and the refusal is recorded.
- Secrets are released by identity, deny by default. A policy decides per request which identity may read which secret.
- Agent-to-agent calls are authorized by the callee and every decision, including every refusal, is a signed record.
- Records are chained and signed inside the process that acted, so altering one breaks verification at exactly that record. Your auditor can check this without us, in a browser, offline.
How we check our own code
The SDK runs inside your agent's critical path, which makes “how do you know your own code is clean?” a fair question. Every push and pull request runs these, and a finding fails the build:
| Language | Tool | Scope |
|---|---|---|
| Python | pip-audit | The hash-pinned set we mirror to customers, not just the version ranges we declare |
| Python | bandit | SDK source, medium severity and above |
| Go | govulncheck | Every module, reachability-aware, so a finding means the vulnerable function is actually callable |
| Rust | cargo audit | The analyzer crate |
| Node | pnpm audit | Both dashboards, high and above |
| All | gitleaks | Full history, not only the diff |
Dependency updates are automated weekly across every ecosystem we use. Security advisories skip that schedule and open immediately.
One lesson we publish because it is easy to get wrong: a clean lockfile inside a package protects nobody, because the installer never reads it. Only the version floors we declare decide what you actually install. Ours are raised when advisories land, and they are never lowered.
What we do not have yet
Hexr does not hold a SOC 2 report of its own, and we have not published a third-party penetration test. We are a small company early in our life, and saying otherwise would be the exact failure this product exists to prevent.
What we can offer instead, today: read the SDK source under licence before you run it, and verify the evidence yourself rather than trusting our description of it.
Checking the claims on this page
Every claim above about records, signatures and refusals is checkable without talking to us. Open a real evidence package in your browser at demo.hexr.dev/auditor, or read how the requirements map to a standard at hexr.dev/aiuc.