// SECURITY.md docs online

Security Policy

Supported versions

Version Supported
latest 0.x release ✅ fixes ship in the next patch or minor
any earlier release ❌ upgrade to the latest

vincent is a pre-1.0, single-maintainer project: there are no backport branches and no long-term support line. A security fix lands on master and ships in the next release, so “supported” means the newest release — see CHANGELOG.md § Versioning and stability for what a minor or patch bump is allowed to change.

Known vulnerabilities in the dependency graph are swept weekly by .github/workflows/vuln.yml (govulncheck across all three target platforms), and on every change to go.mod/go.sum.

Reporting a vulnerability

Please do not open a public issue for security vulnerabilities.

Use GitHub’s private vulnerability reporting: go to the repository’s Security tab → Report a vulnerability, or use this direct link: https://github.com/lezli01/vincent/security/advisories/new. Reports submitted this way are private and visible only to the maintainers, and are acknowledged on a best-effort basis.

Scope notes

vincent executes AI agents in full-auto mode by default — agents can run arbitrary commands as the invoking user, and git worktrees provide collision isolation, not security isolation. This is intentional product behavior, documented in the security model, and the TUI states it once on its first run. Reports about sandbox escapes are only in scope for the opt-in restricted permission mode.

The daemon’s own trust boundary is the OS user: the API listens on loopback only and is gated by a bearer token stored 0600 in the data directory. It stores no agent credentials — agent CLIs use their own auth.