Blog Keamanan Siber
Celah Tautan Berbagi ChatGPT, Pelajaran bagi Pengembang Web
Daftar isi· 7 bagian
Celah tautan berbagi ChatGPT memungkinkan satu obrolan publik menjalankan kode penyerang di sesi korban yang sedang masuk, lalu membaca obrolan pribadinya. Perusahaan keamanan Parameter melaporkannya ke OpenAI pada 18 Oktober 2026, dan OpenAI menutupnya pada 26 Oktober. Pengguna tidak perlu bertindak, tetapi pengembang web perlu mempelajari polanya.
Apa yang ditemukan Parameter
ChatGPT punya fitur untuk membagikan percakapan lewat tautan publik. Siapa pun yang membuka tautan itu dapat membaca isi obrolan, dan bila ia sedang masuk ke akun ChatGPT, halaman tersebut dibuka di dalam sesi miliknya sendiri.
Tim riset Parameter menemukan cara menyusun obrolan publik yang menjalankan JavaScript buatan penyerang begitu tautannya dibuka. Kode itu berjalan atas nama domain chatgpt.com, sehingga peramban memperlakukannya sama dengan kode resmi ChatGPT. Parameter menulis bahwa tim risetnya “was able to take over anyone’s account simply by sending them a link.”
Dalam pengujiannya, Parameter memakai dua akun terpisah milik mereka sendiri. Kode yang disisipkan berhasil menampilkan daftar percakapan terbaru akun korban, membuka satu obrolan pribadi yang tidak pernah dibagikan, lalu mengirim potongan kecil isinya ke server milik peneliti sebagai bukti. Menurut Parameter, kode yang sama juga dapat memanggil API ChatGPT yang memerlukan login atas nama korban. Kemampuan itulah yang membuat temuan ini tergolong pengambilalihan akun.
Laporan Parameter tidak menyebut adanya serangan nyata terhadap pengguna. The Hacker News, yang memberitakan temuan ini pada 31 Oktober 2026, juga mencatat bahwa bukti konsepnya dijalankan antara akun-akun uji, tanpa menyasar pengguna sungguhan.
Cara kerja rantai serangan
Celah ini terbentuk dari beberapa fitur yang masing-masing tampak wajar. Masalahnya muncul ketika fitur-fitur itu bertemu dalam satu obrolan publik.
Bagian pertama adalah grafik interaktif. Saat obrolan memuat grafik, ChatGPT memuat MathLive, pustaka sumber terbuka untuk menampilkan dan mengetik rumus matematika. MathLive memasang pendengar pesan (message listener) di halaman utama ChatGPT. Pendengar ini menerima pesan yang dikirim lewat postMessage, fungsi peramban untuk bertukar data antarjendela atau antar-iframe.
Bagian kedua adalah fitur Preview, yang menampilkan HTML di dalam bingkai terpisah dengan asal (origin) berbeda. Bingkai ini dibatasi dengan baik. Parameter menegaskan bahwa kotak pasir (sandbox) Preview sendiri tidak jebol. Namun, kode di dalam Preview masih dapat mengirim pesan ke halaman utama.
Di titik itulah rantainya tersambung. Pendengar pesan MathLive menerima perintah untuk mengganti tata letak keyboard virtual tanpa memeriksa asal pengirim atau jendela yang mengirimnya. Data tata letak itu boleh berisi HTML mentah, dan MathLive menampilkannya tanpa penyaringan. Hasilnya, sebuah iframe tanpa atribut sandbox terbentuk di halaman utama dan mewarisi identitas chatgpt.com.

Tinggal satu penghalang, yaitu Content Security Policy (CSP), aturan yang menentukan sumber skrip mana yang boleh dijalankan halaman. CSP ChatGPT memblokir skrip sisipan, tetapi mengizinkan skrip dari YouTube. Parameter memanfaatkan endpoint oEmbed YouTube berformat JSONP. Saat terjadi galat, endpoint itu memantulkan nama fungsi callback yang diminta, sehingga isinya dapat diatur penyerang dan dijalankan sebagai skrip yang sah menurut CSP.
Versi awal serangan masih memerlukan satu klik pada Preview. Parameter kemudian menemukan bahwa Preview dapat tampil otomatis ketika tautan obrolan dibuka, sehingga korban cukup membuka tautannya. Parameter juga mencatat bahwa rantai lengkap hanya bertahan bila grafik dan Preview berada dalam satu obrolan publik yang sama. Lampiran terpisah saja tidak cukup.
Perbaikan OpenAI dan MathLive
Linimasa yang dicatat Parameter cukup rinci. Laporan masuk lewat program bug bounty OpenAI pada 18 Oktober 2026. Pada 21 Oktober, OpenAI berhasil mereproduksi masalahnya dan menaikkan tingkat keparahannya dari P2 menjadi P1. Menurut The Hacker News, P1 adalah kategori paling serius di OpenAI.
Perbaikan dilakukan bertahap. Pada 22 Oktober, satu versi antarmuka web sudah diperbaiki, sementara versi kedua masih diperbarui. Pada 23 Oktober, perubahan CSP memutus sebagian rantai. Pada 26 Oktober, OpenAI memastikan kedua versi antarmuka menolak pesan yang dipakai serangan, menutup laporan, dan memberikan imbalan 5.000 dolar AS. Parameter menerbitkan tulisan teknisnya pada 28 Oktober, setelah perbaikan berlaku.
Bagi pengguna ChatGPT, tidak ada yang perlu dipasang atau diatur ulang. The Hacker News menulis bahwa pengguna tidak perlu melakukan apa pun karena perbaikannya berada di sisi OpenAI.
Di sisi pustaka, MathLive merilis versi 0.111.2 pada 31 Oktober 2026 dengan perubahan keamanan yang menyentuh pola yang sama. Menurut catatan rilis MathLive, pesan untuk keyboard virtual, proxy, dan mathfield kini secara bawaan hanya diterima dari asal yang sama. Integrasi lintas asal harus mencantumkan daftar asal tepercaya secara eksplisit. Pengaturan keyboard dari jendela lain juga hanya dapat memilih tata letak bawaan, sedangkan tata letak kustom berisi HTML harus diatur dari jendela tempat keyboard berada. Catatan rilis itu tidak menyebut ChatGPT. Sebelumnya, versi 0.111.1 pada 9 Oktober juga menutup celah cross-site scripting pada opsi shadow di perintah \enclose.
Apa artinya bagi tim pengembang web?
Pola celah ini tidak khusus milik ChatGPT. Banyak aplikasi web di Indonesia memakai iframe dan postMessage: widget pembayaran di toko online, peta di aplikasi dinas, editor rumus di platform ujian, pemutar video di situs sekolah, atau widget percakapan AI di portal layanan. Setiap pendengar pesan yang menerima data dari jendela lain adalah pintu masuk, termasuk pendengar yang dipasang oleh pustaka pihak ketiga tanpa disadari tim.

Langkah berikut dapat dimasukkan ke daftar periksa rilis tim:
- Inventarisasi pendengar pesan. Cari
addEventListener("message"danonmessagedi kode sendiri dan di pustaka yang dimuat halaman. Di Chrome DevTools, panel Elements dapat menampilkan event listener yang terpasang padawindow. Menurut dokumentasi MDN, halaman yang tidak mengharapkan pesan dari situs lain sebaiknya tidak memasang pendengar sama sekali. - Periksa pengirim dan isi pesan. MDN meminta setiap pesan diperiksa lewat properti
origindan, bila perlu,source. Parameter menambahkan bahwa pesan yang mengubah keadaan aplikasi harus dicocokkan dengan asal sekaligus jendela yang memang diberi izin. Setelah pengirim terverifikasi, format pesannya tetap harus divalidasi. - Tolak HTML mentah dari jendela lain. Data konfigurasi lintas jendela sebaiknya berupa nilai terbatas, misalnya nama tata letak atau angka, bukan potongan HTML yang langsung dirender.
- Beri sandbox pada iframe dinamis. Bila isi iframe dapat dipengaruhi pihak yang tidak tepercaya, pasang atribut
sandboxdan berikan izin seminimal mungkin. - Perlakukan CSP sebagai lapisan tambahan. Kasus ini menunjukkan bahwa satu domain tepercaya dengan endpoint JSONP sudah cukup untuk melewati CSP. Tinjau daftar domain yang diizinkan dan hapus yang tidak benar-benar diperlukan.
- Uji fitur dalam kombinasi. Parameter menekankan bahwa celah ini lahir dari pertemuan fitur berbagi, Preview, pustaka matematika, pembuatan bingkai, dan CSP. Pengujian keamanan perlu mencakup skenario ketika beberapa fitur aktif bersamaan, terutama pada halaman yang dapat dibagikan ke publik.
Pembaruan pustaka juga termasuk bagian dari pekerjaan ini. Tim yang memakai MathLive dapat memeriksa versinya dengan npm ls mathlive dan menyesuaikan konfigurasi bila memang membutuhkan pesan lintas asal setelah memperbarui ke 0.111.2. Untuk pustaka lain, pemantauan rilis keamanan sebaiknya menjadi tugas rutin, sama seperti pembaruan server. Tim yang membangun portal atau aplikasi dengan banyak komponen tertanam dapat memasukkan pemeriksaan ini sejak tahap desain dalam pengembangan aplikasi web.
Bagi organisasi yang memakai ChatGPT dalam pekerjaan, kasus ini juga menjadi pengingat tentang tautan obrolan publik. Tautan seperti itu dapat dibuka siapa saja, dan risikonya bergantung pada keamanan platform penyedianya. Kebijakan internal tentang data apa yang boleh dimasukkan ke layanan AI tetap diperlukan, seperti dibahas dalam artikel tentang AGENTS.md palsu dan pengamanan agen AI.
Pertanyaan yang sering muncul
Apakah saya perlu mengganti kata sandi ChatGPT?
Tidak ada anjuran resmi untuk itu. The Hacker News menulis bahwa pengguna tidak perlu melakukan apa pun karena perbaikan dilakukan di sisi OpenAI, dan Parameter tidak melaporkan adanya serangan nyata. Mengaktifkan autentikasi dua faktor tetap merupakan kebiasaan yang baik untuk akun apa pun.
Apakah celah ini punya nomor CVE?
Sumber yang tersedia tidak menyebut nomor CVE. OpenAI menangani laporan ini lewat program bug bounty dengan tingkat keparahan P1, dan perbaikannya dipasang langsung di layanan web ChatGPT.
Situs kami memakai MathLive. Apakah ikut terdampak?
Bergantung pada cara pemakaiannya. Risikonya muncul bila halaman yang memuat MathLive juga menampilkan konten atau iframe yang dapat dikendalikan pihak lain. Memperbarui ke 0.111.2 menerapkan pemeriksaan asal secara bawaan. Setelah itu, periksa juga pendengar pesan lain di halaman yang sama.
Penutup
Celah tautan berbagi ChatGPT sudah ditutup, dan pengguna tidak perlu bertindak. Bagi pengembang web, kasus ini menunjukkan bahwa satu pendengar pesan tanpa pemeriksaan asal di pustaka pihak ketiga dapat membuka jalan ke seluruh sesi pengguna. Bila tim Anda ingin meninjau keamanan aplikasi web yang memakai banyak komponen tertanam, layanan keamanan siber Merakit dapat membantu menyusun pemeriksaan dan pengujiannya.
Sumber
- Parameter: We found a gap at OpenAI (28 Oktober 2026)
- The Hacker News: A Shared ChatGPT Link Could Run Attacker Code in Your Session and Read Private Chats (31 Oktober 2026)
- MathLive: CHANGELOG, versi 0.111.2 (31 Oktober 2026)
- MDN Web Docs: Window.postMessage()