Changelog
Highlights from recent Vouch releases. For the complete list of changes in every release — including bug fixes, dependency updates, and internal refactoring — see the GitHub releases page (opens in new tab).
v2026.8.4 (opens in new tab) — August 16, 2026
SLSA Build Level 3 provenance — release artifacts are now built and attested inside a dedicated reusable workflow (opens in new tab), so the attestation signing identity is out of reach of the build steps themselves — the bar SLSA (opens in new tab) sets for Build Level 3. Every archive, container image, Helm chart, and SBOM can be verified with the builder pinned — the attestation records the reusable workflow as the signer, distinct from the release workflow that called it:
$ gh attestation verify vouch-v2026.8.4-aarch64-apple-darwin.tar.gz \ --owner vouch-sh \ --signer-workflow vouch-sh/vouch/.github/workflows/reusable-build.yml Loaded 1 attestation from GitHub API ✓ Verification succeeded! The following 1 attestation matched the policy criteria - Attestation #1 - Build repo:..... vouch-sh/vouch - Build workflow:. .github/workflows/release.yml@refs/tags/v2026.8.4 - Signer repo:.... vouch-sh/vouch - Signer workflow: .github/workflows/reusable-build.yml@refs/tags/v2026.8.4The GitHub Actions OIDC identity behind release signing also moved to immutable subject claims (opens in new tab), so deleting and re-registering a repository name can no longer mint tokens that match the release trust policies.
AWS role discovery from Identity Center entitlements —
vouch setup awsdiscovery now runs a second pass over IAM Identity Center (opens in new tab) account access manager (opens in new tab) entitlements, so roles assigned to you or your groups through Identity Center are found without hand-configuration. The management role needs new read-only IAM permissions for the pass, which runs in the commercial partition only. Breaking: AWS authorization failures now exit with code 5 instead of 4 (signature and clock-skew errors keep exit code 4).Sender-constrained tokens enforced on every grant — issuing any token now requires a sender-constraint witness (DPoP (opens in new tab) proof or mTLS (opens in new tab) certificate), DPoP-bound device-flow and client-credentials tokens are correctly labeled
token_type: DPoP, and resource endpoints and/oauth/registeranswer stale-nonce requests with aDPoP-Noncechallenge instead of an opaque failure. Device-flow infrastructure failures now return the retryableserver_errorinstead ofinvalid_grant.SCIM PATCH overhaul — PATCH (opens in new tab) operations apply through a shared attribute table covering every mutable attribute, group-membership changes apply atomically, Entra-style remove-by-value is supported, and concurrent adds of the same member resolve to a single membership. Status codes are corrected across the board: infrastructure faults during group creation are 500s, a NUL byte in a member ID is a 400, and deleting an already-removed user is a 404.
SSH agent socket peer verification — the agent now verifies the connecting process’s UID on its SSH agent socket and validates its runtime directory before listening, so another local user cannot use the socket.
Account lifecycle fixes — when an org-scoped application’s creator is deleted, the application transfers to an active organization admin instead of being orphaned. Deactivated users are blocked from CLI hardware-key registration, and sessions arriving exactly at a
max_ageboundary are accepted.SAML interop fix — assertions carrying multiple SubjectConfirmation elements now sign in when any bearer confirmation validates, instead of being rejected outright.
security.txt — the server publishes an RFC 9116 (opens in new tab)
security.txt, giving security researchers a discoverable reporting channel.
v2026.8.3 (opens in new tab) — August 10, 2026
- New policy engine with history-aware policies — device-posture policies
now run on Dogwood (opens in new tab), a
Cedar (opens in new tab)-based engine with a temporal
sublanguage, replacing CEL. Policies can
reason about recent activity: five new built-ins cover token issuance rate
limiting, failed-login bursts, and step-up, IP-consistency, and
logout-invalidation checks on token exchange. Policies are type-checked
against a schema at save time, so a typo’d field is an error instead of a
silent miss, and every denial emits a new
policy_deniedaudit event. Custom policies written in CEL fail closed until re-authored; the policies page flags them and the docs include a rewriting guide. - Guided policy rule builder — the admin policies page replaces its free-text editor with a guided builder: pick a decision point, then compose conditions from dropdowns of known device fields, operators, and activity windows, with a live preview and continuous validation. Raw policy text remains as an escape hatch. Two new built-in policies: MDM enrollment required, and a token-exchange rate limit.
- Hardware key possession enforced for enrollment —
vouch enrollfor a user with a registered key previously released a credential-capable token without a WebAuthn ceremony. Enrollment now requires a key assertion, tokens record whether their approval actually verified hardware, and credential endpoints refuse tokens without that proof. - NUL bytes rejected in client-supplied identifiers — identifiers
containing a NUL byte (e.g. a SCIM
externalId) caused backend-dependent 500s on PostgreSQL and Aurora DSQL. Every backend now answers with a 400 naming the offending field. - FIDO2 token issuance audited — the FIDO2 assertion grant now records an
oauth_token_issuedaudit event with the user, client IP, and grant type, matching the other OAuth grants. - SSH certificate serials printed exactly —
vouch credential sshrounded serials above 2^53 in its output, and a rounded serial submitted for revocation silently matches no certificate. Serials now print digit-for-digit.
v2026.8.2 (opens in new tab) — August 9, 2026
- SSO sign-in fixed on PostgreSQL and Aurora DSQL — the lookup that matches an upstream identity to a Vouch account built its database index value in a form those backends reject, so OIDC sign-ins (and SAML sign-ins with a persistent NameID) failed there. The index value is now a SHA-256 hash, which also keeps the raw upstream subject out of the index table. No migration is required.
v2026.8.1 (opens in new tab) — August 8, 2026
- Organization audit events API with OCSF export — a new org-scoped API lets organizations query their own audit events and export them in OCSF (opens in new tab) format for SIEM ingestion. Browser sign-in events now record the user’s email, and the admin audit page loads faster with batched user lookups.
- Deactivation enforced everywhere — deactivated users are now blocked consistently across SSO sign-in, device-flow approval, hardware key registration, and OAuth token introspection, with every session path running through a single active-user check.
- SCIM provisioning hardening — user provisioning now rejects addresses outside the organization’s verified domains, checked inside the creation transaction to close a race. Concurrent create requests for the same user resolve to a single account, and filter matching follows RFC 7644 (opens in new tab) case rules.
- No more duplicate users from email casing — email addresses are canonicalized to lowercase across sign-in, SCIM, and audit correlation, so the same person arriving with different casing no longer creates duplicate accounts. JIT account linking is now keyed on the upstream issuer and subject pair.
- AWS partition mismatches caught early — the CLI validates that the configured region’s partition matches the role ARN before calling STS — in credential minting, SSM setup, and CodeCommit setup — failing with a clear error instead of an opaque STS one.
- Git credential helper fixes — remote URLs with an explicit
:443port now match the CodeCommit and GitHub helpers, the original host is preserved for git’s credential cache, andvouch execand the CodeCommit helper propagate the child process’s exit code on Windows.
v2026.7.4 (opens in new tab) — July 29, 2026
- Explicit AWS profile selection — with multiple Vouch-managed AWS
profiles, the CLI no longer silently uses whichever appears first in
~/.aws/config. It resolves--profile, thenAWS_PROFILE, then the sole managed profile, and otherwise errors with a list of every profile and its role ARN.--profilenow means an AWS profile on every command; the CodeArtifact bundle flag is renamed--domain-profile. - CodeCommit git helper fixed —
vouch setup codecommit --configurepreviously wrote a credential helper value git could not execute. The helper (and the GitHub one) is now built shell-safe,codecommit::<region>://URLs parse correctly, and the region resolves from the same profile that mints the credentials. - In-process server bootstrap — on EC2 the server now reads instance facts from IMDS and fetches its configuration from SSM Parameter Store itself at startup, replacing the AMI’s external bootstrap script and bundled AWS CLI. Bootstrapped values apply below CLI flags and environment variables.
- CLI fully translation-ready — the remaining English-only CLI strings (command help text and error messages) moved into the Fluent catalogs.
- CodeArtifact role ARN validation — an unparseable role ARN in CodeArtifact setup now fails with an error naming the ARN, instead of silently writing commercial-partition registry URLs into pip, cargo, and npm configuration.
v2026.7.3 (opens in new tab) — July 26, 2026
- Credential and key lifecycle audit events — AWS credential issuance, SSH certificate issuance, RFC 8693 (opens in new tab) token exchange, hardware key registration and removal, device-flow approvals, and application secret changes now emit queryable audit events, each with its own retention class.
- Website sign-ins recorded correctly — signing in through the website now
emits a
login_successevent carrying the client IP, instead of being misreported as a CLI device-flow approval. - Vouch attributable in CloudTrail — the server tags its AWS SDK requests
with
lib/vouch-server/<version>in the user agent, so the S3 and KMS calls it makes are identifiable in CloudTrail.
v2026.7.2 (opens in new tab) — July 14, 2026
- OIDC role pinning for AWS — each token now carries the target role ARN in
the
https://aws.amazon.com/rolesclaim, and AWS STS enforces it: a leaked token cannot be exchanged for any role other than the one it was minted for. Trust policies can make pinning mandatory with thests:RoleAuthorizedByIdp(opens in new tab) condition key. - Per-organization OIDC issuers — each organization gets its own subdomain issuer for AWS federation, with per-org signing keys and key rotation.
- Post-quantum TLS — the CLI and agent now prefer hybrid post-quantum key exchange when connecting to the Vouch server.
- IAM Identity Center context in AssumeRole — the CLI forwards IdC identity context into role sessions for trusted identity propagation (opens in new tab).
- Access-token audience enforcement — the server now enforces the token audience at every resource endpoint.
v2026.7.1 (opens in new tab) — July 3, 2026
- AWS setup redesigned around organization anchors —
vouch credential awsandvouch setup awswere rebuilt around a single org-level anchor, so multi-account access is configured once and roles resolve consistently everywhere. - Interactive AWS setup wizard —
vouch setup awsnow walks you through account and role configuration step by step instead of requiring flags. - Device code pre-fill —
vouch loginpre-fills the device code in the browser, removing the copy-and-type step from the login flow.
v2026.6.3 (opens in new tab) — June 24, 2026
- Internationalization — the server UI, CLI, and agent are now fully translation-ready, with all user-facing strings extracted into per-binary Fluent (opens in new tab) catalogs and locale negotiated automatically. Timestamps in the applications and admin UI render in the viewer’s locale.
- XDG Base Directory compliance — the CLI and agent now follow the
XDG spec (opens in new tab) on
every platform for config, state, data, and cache files. A legacy
flat
~/.vouch/directory is migrated automatically on first run. - Mandatory HTTP message signatures — all
/v1/*API requests now require RFC 9421 (opens in new tab) HTTP message signatures with Content-Digest enforcement, and the server advertises its policy viaAccept-Signature. - OpenID Connect RP-Initiated Logout 1.0 — applications can now end a Vouch session through the standard RP-initiated logout flow (opens in new tab).
- STIG-aligned kernel hardening — the server AMI ships with STIG (opens in new tab)-aligned kernel settings and a published STIG mapping document.
v2026.6.2 (opens in new tab) — June 13, 2026
- Security evaluation remediation — a prioritized internal security
evaluation was completed and all P1 and P2 findings were remediated,
including an SSRF egress guard for client-controlled JWKS and
request_urifetches. - Server-rendered security-keys page — key management moved to full server-side rendering with form POSTs, reducing the JavaScript surface.
- FIPS crypto-policy in the attestable AMI — the hardened server image now enables the FIPS cryptographic policy.
v2026.5.4 (opens in new tab) — May 30, 2026
- Workload identity federation for AI APIs — exchange a Vouch session for short-lived Anthropic (Claude) and OpenAI API credentials, so AI tooling runs without long-lived API keys on disk.
v2026.5.2 (opens in new tab) — May 17, 2026
- Multiple upstream IdPs — a single Vouch server can now federate with more than one upstream identity provider.
- Multi-domain organizations — organizations can span multiple email domains.
- Cross-account KMS keys — the server can use KMS signing keys that live in a different AWS account.
v2026.5.1 (opens in new tab) — May 11, 2026
- DNS-over-HTTPS — the CLI and agent resolve the Vouch server over encrypted DNS, hardening credential flows on untrusted networks.
v2026.4.8 (opens in new tab) — May 1, 2026
- Windows support matured — Vouch is published to winget
(
winget install SmokeTurner.Vouch) and Windows binaries are code-signed. - Clock-skew detection — the CLI warns when local clock drift would cause token validation failures.
v2026.4.6 (opens in new tab) — April 27, 2026
- SSH certificate caching — issued SSH certificates are cached for their lifetime instead of being re-requested on every connection.
- AI agent attribution — when an AI agent invokes AWS credential helpers,
the
AI_AGENTenvironment variable is forwarded into session tags for CloudTrail attribution, with a session policy limiting role chaining. - IAM role paths — roles with paths (e.g.
/engineering/deploy) are fully supported.
v2026.4.5 (opens in new tab) — April 21, 2026
- AWS multi-account SSO — automatic discovery of accounts and roles across an AWS organization, with role chaining.
vouch aws console— open the AWS web console from the terminal using your short-lived credentials.- RFC 9728 Protected Resource Metadata — the server publishes OAuth 2.0 protected resource metadata (opens in new tab) for standards-based client discovery.