Read the docs

Unauthenticated Biscuit credential disclosure in Google OSS Agent Mesh (SAM)

Priority HIGH 77CWE-306Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Security bypass, Information disclosure
Confidentiality · integrity · availability
High · Low · Low
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-306 and CWE-522.

Summary

Google OSS Agent Mesh (SAM) from 0.1.0-alpha.1 before 0.1.0-alpha.9 lacks authentication on the enrollment status handler at GET /enroll/status, which exposes credentials. An unauthenticated remote attacker can retrieve an approved bootstrap-enrolled peer's signed Biscuit identity token using a peer_id obtained from the unauthenticated GET /info endpoint. The attacker can then replay the token as a bearer credential to read mesh authorization policies and overwrite advertised router multiaddrs.

Written with Claude Haiku 5.5 from the sources below · 2026-10-30

Description from the CNA

Missing Authentication for Critical Function (CWE-306) and Insufficiently Protected Credentials (CWE-522) in the control plane enrollment status handler (HandleEnrollStatus at GET /enroll/status in internal/controlplane/server.go) in Google OSS Agent Mesh (SAM) versions 0.1.0-alpha.1 through 0.1.0-alpha.8 allow an unauthenticated remote attacker to retrieve an approved bootstrap-enrolled peer's signed Biscuit identity token by supplying a peer_id obtainable from the unauthenticated GET /info endpoint. A related flaw in POST /enroll allowed any bootstrap-token holder to re-fetch another peer's credential. An attacker can replay the disclosed Biscuit token as a bearer credential on /policies to read mesh authorization policies and on /routers/lease to overwrite advertised router multiaddrs. Users should upgrade to version 0.1.0-alpha.9 or later, which requires cryptographic proof of possession of the enrollment private key on credential-releasing endpoints, enforces rate limiting, and validates router lease addresses.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00502 43rd percentileScored 2026-11-07
Fix Fixed SAM (Google): 0.1.0-alpha.9

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
GoogleSAM0.1.0-alpha.1 to before 0.1.0-alpha.90.1.0-alpha.9Patch availableCNA
  • SAM VendorGoogle Affected 0.1.0-alpha.1 to before 0.1.0-alpha.9 Fixed in 0.1.0-alpha.9 Patch available CNA

Remediation

Upgrade Google SAM to version 0.1.0-alpha.9 or later, which requires proof of possession of the enrollment private key on credential-releasing endpoints.

Written with Claude Haiku 5.5 from the sources below · 2026-10-30

  • Fix · CNA SAM (Google) Fixed in 0.1.0-alpha.9

Timeline

  1. 2026-10-21 Threatist record created from CVE-2026-103090
  2. 2026-10-22 Alias added: GHSA-xhg2-hv24-f4rp
  3. 2026-10-23 Priority changed: MEDIUM → LOW
  4. 2026-10-30 CISA SSVC decision points changed
  5. 2026-10-30 Priority changed: LOW → HIGH

References

  • TI-2025-09686 Type confusion in Google Chrome KEVCVSS 3.1CRITICAL 9.8
  • TI-2024-07390 Type confusion in Google Chrome KEVCVSS 3.1CRITICAL 9.6
  • TI-2024-04898 Type confusion in Google Chrome KEVCVSS 3.1CRITICAL 9.6
  • TI-2024-04600 Type confusion in Google Chrome KEVCVSS 3.1CRITICAL 9.6
  • TI-2024-04346 Use after free in Google Chrome KEVCVSS 3.1CRITICAL 9.6
  • TI-2023-05824 Integer overflow in Google Chrome KEVCVSS 3.1CRITICAL 9.6
See all 17247 →

Sources