Not in the middle: why a Context AI–style breach against Caiioo would yield nothing useful

Ini adalah terjemahan mesin dari dokumen asli berbahasa Inggris. Jika terjadi perbedaan antara terjemahan ini dan versi asli bahasa Inggris, maka versi bahasa Inggris yang akan berlaku. Baca versi asli bahasa Inggris


Tidak di tengah: mengapa pelanggaran gaya Context AI terhadap Caiioo tidak akan menghasilkan sesuatu yang berguna

2026-04-22 · Caiioo Team

Pada 19 April 2026, Vercel mengungkapkan bahwa alat AI pihak ketiga milik seorang karyawan telah disusupi, dan token OAuth yang disusupi tersebut telah digunakan untuk masuk ke lingkungan internal Vercel. Sebagian kecil pelanggan mengalami kebocoran variabel lingkungan non-sensitif. Variabel lingkungan yang terenkripsi/sensitif tidak terdampak.

Alat tersebut adalah Context AI. Karyawan tersebut telah memberikannya akses luas "Izinkan Semua" ke Google Workspace korporat mereka. Pemberian izin OAuth tunggal itu, yang disimpan di server Context AI, menjadi titik ungkit untuk semua yang terjadi selanjutnya.

Seorang pelaku ancaman di BreachForums secara terpisah telah mencantumkan apa yang mereka klaim sebagai 580 catatan karyawan Vercel untuk dijual seharga $2 juta. Vercel belum memverifikasi daftar tersebut.

Insiden ini belum berakhir. Namun pelajaran arsitekturalnya sudah jelas, dan ini berguna bagi siapa pun yang mengevaluasi ruang kerja AI.

Bentuk serangan

Model SaaS-AI menempatkan vendor di tengah setiap pemberian izin OAuth yang Anda berikan.

Saat Anda menginstal alat produktivitas AI pihak ketiga dan mengeklik layar persetujuan OAuth, token akses dan token penyegaran yang dikeluarkan oleh Google (atau Microsoft, atau penyedia identitas mana pun) tidak tetap berada di perangkat Anda. Mereka dikirim ke server vendor, karena AI yang membutuhkannya berjalan di cloud vendor. Infrastruktur vendor menyimpan set token yang terus diperbarui untuk setiap pengguna mereka, dengan cakupan izin "Izinkan Semua" yang diklik sebagian besar pengguna tanpa membaca.

Penyimpanan token terpusat itulah yang justru menjadi target penyerang. Menyusupi vendor satu kali memberi Anda akses Workspace untuk ribuan pelanggan. Buletin Vercel sendiri memperingatkan bahwa efek hilirnya dapat menyentuh "ratusan pengguna di banyak organisasi."

Laporan menelusuri rantai asli kembali ke karyawan Context AI yang perangkat pribadinya disusupi pada Februari 2026, dilaporkan melalui eksploitasi game Roblox yang diunduh yang membawa malware infostealer Lumma Stealer. Malware tersebut mengeksfiltrasi kredensial Google Workspace dan AWS karyawan tersebut, yang pada gilirannya membuka brankas token OAuth. Satu perangkat pribadi yang terinfeksi, satu brankas SaaS korporat, ratusan Workspace di hilir.

Tiga alasan arsitektural mengapa pelanggaran gaya Context AI terhadap Caiioo tidak akan menghasilkan apa pun yang berguna

Caiioo adalah ruang kerja yang kuat dan mengutamakan privasi dengan orkestrator agentic dan antarmuka chat yang berjalan di panel samping. "Privacy-first" menggambarkan postur arsitektural yang spesifik, bukan sekadar baris pemasaran. Ada tiga properti konkret yang bekerja.

1. Token OAuth Workspace Anda disimpan terenkripsi di perangkat Anda, bukan di server kami

Saat Anda menghubungkan akun Google atau Microsoft di Caiioo, Anda akan melihat layar persetujuan OAuth standar Google dengan cakupan (scopes) yang Anda berikan. Sejauh ini, prosesnya terlihat identik dengan memberikan otorisasi pada Context AI.

Perbedaan strukturalnya terletak pada apa yang terjadi pada token yang keluar dari alur persetujuan tersebut. Access token dan refresh token yang diterbitkan Google disimpan terenkripsi di perangkat Anda — di Keychain pada macOS dan iOS, di Keystore Android pada Android, di penyimpanan aman browser pada ekstensi. Token tersebut tidak disimpan di database pusat Caiioo. Kami tidak memiliki brankas token yang menyimpannya atas nama Anda.

Saat orkestrator agentic perlu membaca kalender atau mencari kotak masuk Anda, panggilan API dilakukan dari perangkat Anda langsung ke Google, dengan melampirkan token dari penyimpanan aman perangkat Anda. Infrastruktur kami tidak berada dalam jalur data untuk konten Workspace Anda apa pun.

Anda dapat memverifikasi ini sendiri di kode sumber: src/shared/auth/connections-manager.ts adalah tempat koneksi OAuth Google/Microsoft dipertahankan. Catatan OAuthConnection, termasuk bidang accessToken dan refreshToken, ditulis melalui adaptor penyimpanan lokal — tidak dikirimkan ke penyimpanan token pusat.

2. Message bus pada relay terenkripsi secara end-to-end

Saat komponen Caiioo di perangkat yang berbeda perlu berkoordinasi — ekstensi browser Anda berbicara dengan aplikasi desktop Anda, ponsel Anda berbicara dengan server rumah Anda, UI panel samping memanggil alat yang berjalan secara native di macOS — mereka melakukannya melalui relay yang kami host di relay.pebbleflow.ai. Relay tersebut adalah titik pertemuan yang memungkinkan perangkat Anda menemukan satu sama lain di berbagai jaringan.

Relay tersebut terenkripsi secara end-to-end. Perangkat setiap pengguna melakukan pertukaran kunci melalui selubung relay, dan sejak saat itu, pesan antar perangkat Anda adalah ciphertext dari perspektif relay. Relay dapat merutekannya tetapi tidak dapat membacanya.

Ini bukan sekadar aspirasi. Durable Object yang menangani koneksi WebSocket, cloud/relay/src/user-relay.ts, didokumentasikan sebagai: "Mengelola koneksi WebSocket untuk satu pengguna. Menangani pesan terenkripsi E2E (buram bagi relay) dan pertukaran kunci." Jalur kode yang menangani tipe pesan ENCRYPTED secara eksplisit diberi komentar: "Pesan terenkripsi ke klien tertentu (kami tidak dapat membacanya)." Relay secara arsitektural tidak mampu memeriksa isi pesan yang diteruskannya.

3. Relay bersifat single-tenant per pengguna, berdasarkan konstruksi

Relay Caiioo dibangun di atas Cloudflare Durable Objects. Setiap pengguna mendapatkan instans UserRelay mereka sendiri — bagian komputasi dan penyimpanan yang terpisah dan terisolasi secara runtime. Tidak ada database multi-tenant bersama yang menampung status sesi langsung setiap pengguna, karena memang tidak ada database multi-tenant sama sekali untuk peran tersebut. Relay setiap pengguna adalah objek yang terpisah.

Hal ini penting karena menghilangkan mode kegagalan target-bersama-tunggal (single-shared-target). Bahkan jika penyerang menemukan cara untuk mengompromikan Durable Object milik satu pengguna, mereka tidak akan mendapatkan akses lateral ke data pengguna lain mana pun — tidak ada penyimpanan pendukung bersama untuk melakukan pivot. Setiap pengguna, secara struktural, adalah penyewa (tenant) mereka sendiri.

Apa yang ada dan tidak ada dalam basis data pusat kami

Kami memang mengoperasikan basis data pusat (Cloudflare D1) untuk hal-hal yang perlu dipusatkan. Kejujuran sangat penting di sini. Basis data tersebut menyimpan:

  • Identitas akun: email Anda, kata sandi yang di-hash jika Anda menggunakan login email/kata sandi, ID penyedia yang dikembalikan oleh Google/Apple/Microsoft jika Anda menggunakan tombol login sosial.
  • Status penagihan: ID pelanggan Stripe Anda, tingkat langganan, kunci lisensi, dan status langganan.
  • Kunci API per pengguna untuk penyedia inferensi AI (khususnya OpenRouter). Ini adalah kredensial penyedia inferensi — berbeda dari token OAuth Workspace Anda. Kunci ini ada untuk alur kredit terkelola dan bagi pengguna yang ingin membawa kunci OpenRouter mereka sendiri untuk digunakan di seluruh fitur AI Caiioo.
  • Daftar aktivasi perangkat untuk penegakan lisensi.
  • Log audit, disimpan untuk persyaratan bukti SOC 2.
  • Tabel perutean untuk webhook masuk opsional (WhatsApp, Telegram, dll.) — hanya digunakan jika Anda telah mengonfigurasi integrasi pesan tersebut.

Basis data tersebut tidak menyimpan:

  • Token OAuth Workspace Anda (Gmail, Kalender, Drive, Microsoft 365). Token tersebut hanya ada di perangkat Anda.
  • Konten percakapan Anda. Orkestrator agen berjalan di panel samping Anda; percakapan tinggal di penyimpanan lokal Anda.
  • Data Workspace Anda — email, acara kalender, file Drive. Data tersebut dibaca langsung dari Google/Microsoft ke perangkat Anda, tidak pernah melewati infrastruktur kami.
  • Isi pesan apa pun yang mengalir melalui relai WebSocket. Relai hanya melihat teks tersandi (ciphertext).

Pelanggaran pada basis data pusat kami akan mengekspos identitas akun/penagihan, log audit, dan kolom kunci inferensi OpenRouter. Itu tidak akan menghasilkan token Workspace, konten percakapan, atau data Workspace, karena hal-hal tersebut tidak ada di dalamnya untuk diambil.

Peringatan jujur

Ini adalah model ancaman yang berbeda, bukan pelindung ajaib. Beberapa kualifikasi yang kami lebih suka Anda dengar dari kami daripada menemukannya sendiri nanti.

Pertukaran kode OAuth menyentuh relay kami secara singkat. Google (dan Microsoft, GitHub, Slack) mengharuskan client_secret OAuth diserahkan pada langkah pertukaran token, dan rahasia tersebut tidak dapat dikirimkan dalam kode klien. Jadi relay stateless kami melampirkan client_secret dan meneruskan kode otorisasi Anda ke Google untuk ditukarkan dengan token yang sebenarnya. Token tersebut kembali melalui relay dan segera dikembalikan ke perangkat Anda untuk disimpan. Token tersebut tidak disimpan secara permanen di infrastruktur kami. Ini adalah alasan yang sama mengapa setiap aplikasi asli yang terintegrasi dengan Google yang pernah Anda gunakan memiliki beberapa komponen server — ini adalah batasan Google, bukan pilihan desain caiioo.

Endpoint khusus memungkinkan Anda melewati klien OAuth kami sepenuhnya. Caiioo mendukung konfigurasi endpoint OAuth khusus, yang berarti pengguna yang bersedia menyediakan klien OAuth mereka sendiri di Google Cloud Console (atau setara dengan Microsoft Entra) dapat menghindari cakupan OAuth Caiioo dan langkah pertukaran relay kami sama sekali. Setelah dikonfigurasi, alur autentikasi terjadi antara perangkat Anda dan Google tanpa Caiioo berada dalam lingkaran tersebut. Kami tidak menampilkan ini sebagai pengaturan yang menghadap konsumen karena sebagian besar pengguna tidak membutuhkannya dan arsitektur default sudah menjaga data Workspace Anda tetap berada di luar server kami. Namun fitur ini ada, dan implementasinya akan terasa familier bagi siapa pun yang pernah menyiapkan klien OAuth di Google Cloud Console sebelumnya.

Kompromi perangkat tetap menjadi masalah. Jika laptop Anda dikuasai peretas, token Anda juga dikuasai. Pendekatan local-first memindahkan permukaan serangan dari "brankas vendor" ke "endpoint Anda." Itu adalah permukaan yang lebih kecil dan lebih mudah dipertahankan, tetapi tidak nol.

Tingkat login "Sign in with Google" terpisah dari akses Workspace. Jika Anda masuk ke Caiioo itu sendiri dengan Google atau Apple, alur tersebut hanya untuk identitas dan membuat koneksi Dasar yang dicakupkan ke akun Anda. Ini bukan jalur yang sama dengan alur akses Workspace yang dijelaskan di atas dan tidak memberikan AI akses ke kotak masuk atau kalender Anda.

Serangan rantai pasokan (supply-chain) pada Caiioo itu sendiri masih mungkin terjadi. Saluran pembaruan yang disusupi secara prinsip dapat mengirimkan kode yang mengeksfiltrasi token dari perangkat Anda. Kami memitigasi hal ini dengan penandatanganan kode (code signing) dan notarisasi pada setiap platform yang kami kirimkan, tetapi mitigasinya berbeda dari model brankas vendor — begitu pula dengan nilai ekonomi bagi penyerang.

Cara memverifikasi sendiri

Jawaban jujurnya adalah klaim privasi vendor dari halaman pemasaran tidak dapat dibuktikan kepada seorang skeptis. Jadi, inilah cara untuk mengonfirmasi apa yang telah kami klaim menggunakan alat Anda sendiri.

Jalankan monitor jaringan saat menggunakan caiioo. Little Snitch di macOS, GlassWire di Windows, atau Wireshark di platform apa pun. Gunakan Caiioo secara normal selama satu jam. Lalu lintas yang akan Anda lihat, beserta arti dari setiap koneksi:

Tujuan Kapan Apa artinya
oauth2.googleapis.com, gmail.googleapis.com, calendar.googleapis.com, www.googleapis.com Kapan pun agen membaca data Workspace Anda Perangkat Anda berbicara langsung ke Google dengan token di perangkat Anda. Kami tidak berada dalam jalur ini.
login.microsoftonline.com, graph.microsoft.com Jika Anda telah menghubungkan Microsoft 365 Pola yang sama, perangkat Anda ke Microsoft.
api.anthropic.com, openrouter.ai, api.openai.com, generativelanguage.googleapis.com, localhost:11434 (Ollama) Saat Anda mengirim chat atau menjalankan alat yang menggunakan LLM Perangkat Anda berbicara dengan penyedia AI mana pun yang telah Anda konfigurasi. Kami tidak berada dalam jalur ini.
relay.pebbleflow.ai (HTTPS) Singkat, selama pengaturan awal OAuth Workspace dan selama penyegaran token berkala Pertukaran kode OAuth yang bersifat stateless. Token lewat begitu saja, tidak disimpan di sisi server.
relay.pebbleflow.ai (HTTPS) Secara berkala Validasi lisensi, pengambilan konten catatan rilis / panduan pengguna, data kecerdasan model, pemeriksaan status langganan.
relay.pebbleflow.ai (HTTPS) Saat Anda memuat situs web atau melihat status akun yang terhubung Lalu lintas API standar.
relay.pebbleflow.ai (WebSocket) Terus-menerus, jika Anda menginstal beberapa komponen Caiioo (ekstensi + aplikasi desktop, atau seluler + desktop) Jembatan kapabilitas yang memungkinkan perangkat Anda berbicara satu sama lain. Terenkripsi end-to-end. Kami hanya melihat ciphertext.
relay.pebbleflow.ai/api/messaging/... Hanya jika Anda telah mengonfigurasi integrasi perpesanan (WhatsApp, Telegram, Slack masuk) Perutean webhook untuk pesan masuk.

Apa yang tidak akan Anda lihat, selamanya:

  • Data Workspace Anda (email, acara kalender, file Drive) mengalir ke relay.pebbleflow.ai. Panggilan tersebut langsung dari perangkat Anda ke *.googleapis.com.
  • Konten percakapan Anda mengalir ke relay.pebbleflow.ai. Orkestrator berjalan di panel samping Anda; riwayat chat ada di penyimpanan lokal Anda.
  • API key penyedia AI Anda mengalir ke relay.pebbleflow.ai. Mereka berada di perangkat Anda. (Pengecualian: jika Anda menggunakan alur kredit terkelola, Anda menggunakan sub-akun OpenRouter yang dialokasikan server, dan panggilan inferensi tetap dilakukan dari perangkat Anda.)

Jika Anda melihat permintaan dari perangkat Anda ke infrastruktur kami yang tidak sesuai dengan tabel di atas, itu adalah sebuah temuan. Beritahu kami, dan kami akan menjelaskannya atau memperbaikinya.

Apa yang harus dilakukan jika Anda adalah pelanggan Vercel atau Context AI

Panduan yang diterbitkan dari Vercel, Context AI, dan komunitas riset keamanan telah mengerucut pada daftar periksa yang konsisten:

  1. Rotasi setiap rahasia yang disimpan sebagai variabel lingkungan Vercel yang tidak terenkripsi. Variabel terenkripsi/sensitif dilaporkan tidak terdampak, tetapi rotasi itu murah.
  2. Audit pemberian izin OAuth pihak ketiga tim Anda di Google Workspace (dan Microsoft 365, jika berlaku). Cabut apa pun yang tidak Anda kenali, dan perlakukan alat apa pun yang Anda beri cakupan luas "Izinkan Semua" sebagai kredensial yang perlu Anda ganti.
  3. Perketat persetujuan di masa mendatang. Lebih baik pilih alat yang meminta cakupan hak istimewa paling rendah (least-privilege), dan pilih ruang kerja yang arsitekturnya tidak mengharuskan Anda menyerahkan token berumur panjang sama sekali.

Poin ketiga adalah langkah struktural, dan merupakan hal yang diam-diam direkomendasikan oleh insiden ini.

Coba Caiioo

Jika pelajaran dari insiden Vercel/Context AI adalah bahwa lokasi token OAuth Anda menentukan radius dampak saat vendor dilanggar, jawabannya adalah memilih ruang kerja yang tidak menyimpannya.

Caiioo adalah ruang kerja yang kuat dan mengutamakan privasi dengan orkestrator agen dan antarmuka obrolan yang berjalan di panel samping. Tersedia sebagai ekstensi peramban, aplikasi asli macOS, aplikasi asli iOS, aplikasi asli Android, dan aplikasi desktop untuk Windows dan Linux. Mulai secara gratis.


Sumber: