Penurunan referensi ganda ini menciptakan sebuah celah use-after-free (UAF) klasik: dua jalur eksekusi dapat beroperasi pada memori yang telah dibebaskan, memberikan jendela kesempatan bagi penyerang untuk memanipulasi heap dan akhirnya membajak alur kendali di level kernel host .
Bug ini terletak di fungsi vgic_its_invalidate_cache(), yang menelusuri cache translasi per-ITS menggunakan xa_for_each() dan memanggil vgic_put_irq() pada pointer yang diiterasi, alih-alih pada nilai yang dikembalikan secara aman oleh xa_erase(). Berbagai konteks dapat memasuki fungsi ini di bawah penguncian yang berbeda, sehingga kondisi balapan sepenuhnya dapat dipicu dari mesin tamu dengan mencampurkan penanganan perintah ITS, penulisan GITS_CTLR, dan pembersihan EnableLPIs di redistributor
.
Meskipun eksploitasi guest-to-host escape jarang terjadi, ini adalah kelas bug hypervisor yang paling berbahaya karena meruntuhkan batas isolasi yang menjadi andalan komputasi awan. Eksploitasi KVM publik sebelumnya menargetkan arsitektur x86, biasanya melalui QEMU atau kode spesifik AMD . ITScape adalah eksploitasi berfungsi pertama yang mendemonstrasikan pelolosan dari VM tamu arm64 yang tidak memiliki hak istimewa melalui kode dalam kernel KVM itu sendiri — tidak memerlukan bug di emulator userspace
.
Bagi penyedia layanan cloud yang menjalankan prosesor AWS Graviton, Ampere Altra, atau host KVM arm64 lainnya dengan beban kerja multi-tenant, seorang penyerang di dalam VM tamu dapat:
Sebagian besar tim keamanan menilai kerentanan ini di atas skor CVSS 9.0, yang mencerminkan tingkat keparahannya yang kritis .
Kode yang rentan berada di jalur invalidasi cache translasi LPI. Saat kernel perlu menghapus entri cache, ia akan mengiterasi XArray dengan xa_for_each() dan memanggil vgic_put_irq() untuk melepaskan jumlah referensi pada setiap entri. Masalahnya adalah xa_for_each() dapat mengembalikan entri yang mungkin sudah dihapus oleh operasi bersamaan — seperti perintah DISCARD ITS yang dikeluarkan dari vCPU yang berbeda. Proses loop invalidasi tetap menjatuhkan referensi pada entri yang sudah dihapus tersebut, menyebabkan double-put dan akhirnya memicu use-after-free
.
Kerentanan sebelumnya pada kode yang sama, CVE-2024-26598, telah mengatasi sebagian masalah UAF di jalur cache hit translasi LPI dengan meningkatkan refcount di dalam vgic_its_check_cache() sebelum melepaskan kunci. Namun, perbaikan tersebut tidak mencakup jalur invalidasi, sehingga race condition tetap dapat dieksploitasi melalui urutan pemicu yang berbeda
.
Perbaikan dari pengembang utama kernel Linux memodifikasi vgic_its_invalidate_cache() sehingga vgic_put_irq() hanya dipanggil pada nilai yang dikembalikan oleh xa_erase(), bukan pada setiap entri yang disentuh oleh iterator. Pesan komitnya berbunyi: "KVM: arm64: vgic-its: Drop the translation cache reference only for the erased entry"
.
Karena xa_erase() secara atomik menghapus dan mengembalikan entri lama — atau mengembalikan NULL jika entri sudah hilang — perbaikan ini memastikan jumlah referensi dikurangi tepat satu kali, menghilangkan celah double-free. Tambalan ini masuk ke kernel utama pada awal Juni 2026 dan dengan cepat ditarik ke dalam seri stabil 6.x sekitar 8–10 Juni 2026
. Distribusi utama, termasuk Red Hat, SUSE, dan Debian, telah menerbitkan perbaikan backport untuk cabang kernel yang mereka dukung
.
Hyunwoo Kim merilis eksploitasi yang berfungsi secara publik di GitHub sekitar tanggal 9–10 Juni 2026. Repositori tersebut mencakup kode sumber lengkap, instruksi reproduksi langkah demi langkah, dan deskripsi teknis tentang teknik eksploitasi . Eksploitasi ini memicu kondisi balapan dengan mengoordinasikan thread vCPU yang secara bersamaan mengeluarkan perintah DISCARD dan pencarian cache translasi LPI, sehingga secara tepat mendaratkan use-after-free untuk mengeksekusi kode host.
Ketersediaan PoC yang andal untuk publik berarti bahwa pemindai eksploitasi komoditas dan penyerang dunia nyata dapat mempersenjatai kerentanan ini dengan upaya minimal, mempersingkat waktu antara pengungkapan dan serangan aktif.
Jika Anda mengoperasikan infrastruktur KVM arm64 multi-tenant — seperti AWS Graviton, Ampere Altra, atau platform serupa — perlakukan ini sebagai siklus tambalan darurat segera.
Comments
0 comments