Summary
CVE-2026-103090 is a missing-authentication vulnerability (CWE-306, CWE-522) in Google SAM (OSS Agent Mesh, github.com/google/sam). An unauthenticated remote attacker can retrieve a signed Biscuit identity token from the control plane and replay it to read mesh authorization policies and modify router addresses. The vulnerability is rated High (8.8, CVSS v4.0).
Technical details
- Root cause: The
GET /enroll/statusendpoint on the SAM control plane has no authentication. Its handler (HandleEnrollStatus) reads only the peer ID query parameter and never validates the Authorization header. Routes are registered on a baremux.HandleFuncwith no middleware, and each handler does its own authentication. Sibling routes such as/refreshrequire proof-of-possession, but this one does not. - Trigger conditions: The attacker needs network access to the control plane and the peer ID of an approved peer that was enrolled with a bootstrap token. Per the advisory, OIDC-enrolled peers are not affected, routers are the main exposure, and each token is valid for 24 hours.
- Attack vector: The attacker sends an unauthenticated GET request to
/enroll/statusand receives the peer’s signed Biscuit identity token. The control plane accepts that Biscuit as a bearer credential on/policiesand/routers/lease. - Impact:
- Disclosure of live mesh credentials to anonymous callers.
- Read access to mesh authorization policies, including role definitions and member bindings, through
/policies. - Overwriting of advertised router multiaddrs through
/routers/lease. The advisory says this can disrupt mesh-join operations.
Affected software
- Google SAM (
github.com/google/sam) versions 0.1.0-alpha.1 through 0.1.0-alpha.8 (earlier than v0.1.0-alpha.9)
Severity
- CVSS v4.0 base score 8.8 (High)
- Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N - CWE-306: Missing Authentication for Critical Function. CWE-522: Insufficiently Protected Credentials.
- The published score uses CVSS v4.0, not v3.1.
Mitigation and recommended actions
- Immediate: Upgrade Google SAM to v0.1.0-alpha.9 or later.
- If no patch is possible: The advisory describes a fix that requires the same proof-of-possession used by
/refresh. The poller signs a current timestamp with the private key whose public half it submitted at/enroll, and the server verifies the signature against the stored public key. The advisory does not list a configuration workaround. Until you can upgrade, restrict network access to the SAM control plane to trusted peers only. This is general hardening, not vendor guidance. - Bootstrap-enrolled peers’ tokens expire after 24 hours. Review control-plane access logs for unexpected requests to
/enroll/status,/policiesand/routers/lease.

