Apa yang terjadi
A2AServer mengekspos agen Google A2A melalui HTTP (tasks/send, tasks/get, tasks/cancel) tetapi hanya menegakkan autentikasi Bearer ketika opsi secret dikonfigurasi. Karena opsi ini bersifat opsional dan startServer() tidak melakukan pemeriksaan fail-closed, konfigurasi default dari endpoint agen yang menghadap jaringan tidak memiliki autentikasi. Dokumentasi proyek itu sendiri menggambarkan server A2A sebagai gerbang Bearer, sehingga default fail-open bertentangan dengan postur keamanan yang didokumentasikan, dan berbeda dari transport MCP paket ini, yang menolak untuk memulai tanpa secret.
Mengapa penting
Ini adalah cacat autentikasi yang hilang secara fail-open pada endpoint protokol agen-ke-agen (A2A). Penyerang mana pun yang dapat mencapai server dapat mengirimkan tugas arbitrer ke eksekutor agen, membaca hasil tugas yang tersimpan, dan membatalkan tugas — dan karena teks tugas diteruskan langsung ke apa pun yang dihubungkan oleh pengembang sebagai eksekutor, dampaknya meningkat ke alat atau sistem apa pun yang diizinkan untuk digerakkan oleh agen tersebut.
Vektor serangan
Operator memulai A2AServer.startServer() tanpa secret (bidang ini opsional tanpa default). Blok autentikasi Bearer dijaga oleh if (this.options.secret), sehingga tanpa secret yang dikonfigurasi, seluruh pemeriksaan otorisasi dilewati dan rute berlanjut ke penanganan tugas. Penyerang mencapai kartu agen (yang mengiklankan tidak ada skema autentikasi) dan mengirimkan tugas JSON-RPC tasks/send, tasks/get, dan tasks/cancel tanpa kredensial, meneruskan teks tugas yang dikendalikan penyerang langsung ke eksekutor yang disediakan pengembang.
Sistem yang terdampak
paket npm network-ai, kelas A2AServer (lib/a2a-server.ts) <= 5.15.4; perbaikan di 5.15.5 (atau konfigurasikan secret).
Mitigasi
Konfigurasikan secret Bearer pada A2AServer (fail closed) atau tingkatkan ke >= 5.15.5; ikat ke loopback saja jika memungkinkan dan perlakukan endpoint A2A sebagai terautentikasi. Advisory mencatat bahwa perbaikan belum ada di rilis terbaru yang diperiksa.