# Security Policy
OpenLatch is security infrastructure — we hold our own code to the same standard we enforce for AI agents.
## Supported Versions
| Latest release | :white_check_mark: |
| Previous minor | :white_check_mark: (backport on request) |
| Older | :x: |
We recommend always running the latest version.
## Reporting a Vulnerability
**Do not open a public issue for security vulnerabilities.**
Use one of these private channels:
| GitHub Private Reporting | [Report a vulnerability](https://github.com/OpenLatch/openlatch-client/security/advisories/new) (preferred) |
| Email | **security@openlatch.ai** |
### What to Include
- Description of the vulnerability and its impact
- Steps to reproduce (minimal reproducible example preferred)
- Affected version(s)
- Severity assessment (if known)
### Our Commitment
| Acknowledge receipt | Within **2 business days** |
| Triage and initial assessment | Within **5 business days** |
| Fix shipped | Best effort, dependent on severity |
| Public disclosure | After fix is released, coordinated with reporter |
## Acknowledgments
We credit researchers who report vulnerabilities responsibly in our release notes (unless you prefer anonymity). Include your preference in your report.
## Supply Chain Security
Release binaries are built by GitHub Actions from this repository. What each release carries, and what it does not:
| minisign signature, verified by the client before it updates itself | ✓ | ✓ | ✓ |
| Sigstore (Cosign keyless) signature and certificate | ✓ | ✓ | — |
| SPDX SBOM per target | ✓ | ✓ | — |
| Platform code signing | ad-hoc only — not Developer ID-signed, not notarized | — | not Authenticode-signed |
| Build-provenance attestation | — | — | — |
The npm packages are published through Trusted Publishing (OIDC) without a provenance statement, because npm does not accept provenance from a private source repository.
- Dependencies are audited via `cargo audit` and Dependabot
- Every CI action is pinned to a full-length commit SHA, and this repository's Actions policy refuses a workflow that references one by tag. Dependabot moves the pins
- A release publishes only from a tag that points at a commit on `main`, and only the release app can create a release tag
Thank you for helping make AI agents safer.