Kerentanan Reptar mempengaruhi prosesor Intel

Tavis Ormandy, peneliti keamanan di Google, telah mengidentifikasi kerentanan baru (CVE-2023-23583) pada prosesor Intel, dengan nama kode Reptar, yang terutama menimbulkan ancaman terhadap sistem cloud yang menjalankan mesin virtual dari pengguna berbeda. Kerentanan memungkinkan sistem untuk hang atau crash ketika operasi tertentu dilakukan pada sistem tamu yang tidak memiliki hak istimewa. Untuk menguji sistem Anda, sebuah utilitas telah diterbitkan yang menciptakan kondisi untuk manifestasi kerentanan.

Secara teori, kerentanan dapat digunakan untuk meningkatkan hak istimewa dari cincin perlindungan ketiga ke nol (CPL0) dan melarikan diri dari lingkungan yang terisolasi, namun skenario ini belum dikonfirmasi dalam praktiknya karena kesulitan dalam melakukan debug di tingkat mikroarsitektur. Tinjauan internal di Intel juga menunjukkan potensi eksploitasi kerentanan untuk meningkatkan hak istimewa dalam kondisi tertentu.

Menurut peneliti, kerentanan terdapat pada keluarga prosesor Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake, dan Sapphire Rapids. Laporan Intel menyebutkan bahwa masalah muncul mulai dari prosesor Intel Core generasi ke-10 (Ice Lake) dan prosesor Xeon Scalable generasi ketiga, serta pada prosesor Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) dan Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake dan Denverton). Kerentanan yang dimaksud telah diperbaiki pada pembaruan mikrokode kemarin 20231114.

Kerentanan ini disebabkan oleh fakta bahwa dalam keadaan mikroarsitektur tertentu, eksekusi instruksi β€œREP MOVSB” dikodekan dengan awalan β€œREX” yang berlebihan, yang menyebabkan perilaku tidak terdefinisi. Masalahnya ditemukan selama pengujian prefiks yang berlebihan, yang secara teori harus diabaikan, namun dalam praktiknya menyebabkan efek aneh, seperti mengabaikan cabang tanpa syarat dan merusak penyimpanan pointer di instruksi xsave dan panggilan. Analisis lebih lanjut menunjukkan bahwa menambahkan awalan berlebihan ke instruksi "REP MOVSB" menyebabkan kerusakan pada konten buffer ROB (ReOrder Buffer) yang digunakan untuk memesan instruksi.

Dipercaya bahwa kesalahan tersebut disebabkan oleh perhitungan yang salah dari ukuran instruksi "MOVSB", yang menyebabkan pelanggaran pengalamatan instruksi yang ditulis ke buffer ROB setelah MOVSB ​​​​dengan awalan yang berlebihan, dan offset dari penunjuk instruksi. Desinkronisasi tersebut dapat dibatasi pada gangguan perhitungan perantara dengan pemulihan selanjutnya dari keadaan integral. Namun jika Anda membuat beberapa core atau thread SMT mogok secara bersamaan, Anda dapat merusak status mikroarsitektur hingga menyebabkan crash.

Sumber: opennet.ru

Tambah komentar