Component: Split View
Severity: S3 / P2 Affected: Chrome 143 & OS: Linux, Mac, Windows& ChromeOS
This article was written in Indonesian. If you are from outside Indonesia, please translate it into your own language.
Awal Cerita
Bug ini berawal dari issue lama Chromium 440523110.
Di issue itu, Chromium sudah memperbaiki kasus file picker yang bisa muncul setelah user klik kanan lewat:
input.click()Tapi saya penasaran:
Kalau
input.click()sudah diblok, apakah API file picker yang lain juga ikut diblok?
Ternyata belum.
Cara Kerjanya
Flow-nya simpel:

- User klik kanan link.
- User pilih Open in Split View.
- Panel kanan membuka halaman trusted, misalnya Google Drive.
- Panel kiri masih halaman attacker.
- Setelah delay singkat, attacker memanggil:
setTimeout(() => {
showOpenFilePicker()
}, 1000)6. File picker muncul otomatis.
7. User memilih file karena merasa sedang dalam konteks Google Drive.
8. File sebenarnya dibaca oleh halaman attacker.

Root Cause
Intinya ada di user activation.
Chromium masih menganggap klik kanan sebagai aksi user yang valid.
Masalahnya, activation itu masih hidup walaupun sudah lewat setTimeout.
Contoh sederhananya:
link.addEventListener("contextmenu", () => {
setTimeout(() => {
showOpenFilePicker()
}, 1000)
})Harusnya activation seperti ini sudah mati, apalagi setelah user pindah konteks ke Split View.
Tapi saat itu Chromium masih membiarkannya.
Kenapa Ini Regression Bypass?
Issue lama sudah memperbaiki:
input.click()Tapi belum memperbaiki:
showOpenFilePickerJadi bug lama tidak benar-benar balik, tapi fix-nya belum nutup semua jalur.
Itulah kenapa ini disebut regression bypass.
Kenapa Split View Penting?
Split View bikin bug ini jadi lebih meyakinkan.
User melihat Google Drive di kanan, lalu file picker muncul. Secara manusia, wajar kalau user mengira file itu diminta oleh Google Drive.
Padahal file picker dipanggil oleh halaman attacker di kiri.
Intinya:
Yang user lihat : Google Drive
Yang memanggil : attacker page
Yang menerima file: attacker pageDi situlah spoofing-nya.
Impact
Bug ini bisa membuat user salah percaya saat memilih file.
Attacker bisa membuat flow upload palsu, lalu membuat user memilih file seperti:
- foto pribadi
- dokumen kerja
- screenshot sensitif
- file internal
Bukan permission bypass. User tetap memilih file sendiri.
Tapi keputusan user dibuat dalam konteks UI yang salah.
Penutup
Jangan cuma cek API yang sudah di-fix. Cek juga API lain yang punya efek sama.
Kalau mau cari bug spoofing di browser, sebaiknya jangan terlalu bergantung pada AI.
Untuk kasus seperti ini, AI sering terlihat meyakinkan tapi banyak yang berakhir sebagai false positive.
Lebih efektif kalau kamu benar-benar paham alur browser, cara user interaction diproses, dan mencoba sendiri berbagai skenario.
Pendeknya:
bug seperti ini biasanya ditemukan dari pemahaman dan eksperimen langsung, bukan dari hasil generate.
Di sini, Chromium sudah menutup input.click(), tapi showOpenFilePicker() masih terbuka.
Bug kecil. Flow sederhana. Tapi impact-nya nyata.
Dan akhirnya case ini di-fix dan rewarded $3000 oleh Chrome VRP.
Laporan Chromium Issue Saya ( It will probably be published by Chromium soon ) : https://issues.chromium.org/issues/474583539