Apa yang terjadi
Handler status pendaftaran control-plane (HandleEnrollStatus di GET /enroll/status di internal/controlplane/server.go) di Google OSS Agent Mesh (SAM) 0.1.0-alpha.1 hingga 0.1.0-alpha.8 kekurangan autentikasi (CWE-306) dan tidak cukup melindungi kredensial (CWE-522). Penyerang jarak jauh tanpa autentikasi dapat menyediakan peer_id yang diperoleh dari endpoint GET /info tanpa autentikasi untuk mengambil token identitas Biscuit yang ditandatangani dari peer yang disetujui bootstrap-enrolled; cacat terkait di POST /enroll memungkinkan pemegang token bootstrap mana pun mengambil ulang kredensial peer lain. Token yang diungkapkan dapat diputar ulang sebagai kredensial bearer di /policies untuk membaca kebijakan otorisasi mesh dan di /routers/lease untuk menimpa multiaddr router yang diiklankan.
Mengapa penting
SAM adalah mesh agen OSS Google untuk komunikasi agen peer-to-peer; membocorkan token identitas yang ditandatangani peer memungkinkan orang luar memalsukan identitas peer tersebut di mesh, membaca kebijakan otorisasi dan membajak routing (penimpaan multiaddr router) — jalur tanpa autentikasi untuk mengganggu atau menyamar sebagai agen dalam penerapan mesh.
Vektor serangan
GET /enroll/status tanpa autentikasi (dan POST /enroll) untuk memanen token identitas Biscuit yang ditandatangani peer, lalu memutar ulang sebagai kredensial bearer di /policies dan /routers/lease.
Sistem yang terdampak
Google OSS Agent Mesh (SAM) 0.1.0-alpha.1 hingga 0.1.0-alpha.8
Mitigasi
Tingkatkan ke SAM 0.1.0-alpha.9 atau lebih baru, yang memerlukan bukti kriptografis kepemilikan kunci privat pendaftaran pada endpoint yang melepaskan kredensial, memberlakukan rate limiting, dan memvalidasi alamat sewa router.