Kaayaan balapan dina kolektor sampah kernel Linux anu tiasa nyababkeun paningkatan hak istimewa

Jann Horn ti tim Google Project Zero, anu sakali ngaidentifikasi kerentanan Specter sareng Meltdown, nyebarkeun téknik pikeun ngamangpaatkeun kerentanan (CVE-2021-4083) dina kolektor sampah kernel Linux. Kerentanan ieu disababkeun ku kaayaan balapan nalika ngabersihkeun deskriptor file dina sockets unix sareng berpotensi ngamungkinkeun pangguna anu henteu ngagaduhan hak istimewa pikeun ngaéksekusi kodena dina tingkat kernel.

Masalahna pikaresepeun sabab jandela waktos nalika kaayaan balapan lumangsung diperkirakeun leutik teuing pikeun nyiptakeun eksploitasi nyata, tapi panulis panilitian nunjukkeun yén bahkan kerentanan anu mimitina skeptis tiasa janten sumber serangan nyata upami panyipta eksploitasi ngagaduhan. kaahlian perlu jeung waktu. Yann Horn nunjukkeun kumaha, kalayan bantosan manipulasi filigree, anjeun tiasa ngirangan kaayaan balapan anu lumangsung nalika nelepon nutup () sareng fget () fungsi sakaligus janten kerentanan anu tiasa dieksploitasi saatos-gratis sareng ngahontal aksés ka data anu parantos dibébaskeun. struktur jero kernel.

Hiji kaayaan lomba lumangsung salila prosés nutup file descriptor bari nelepon nutup () sarta fget () dina waktos anu sareng. Panggero pikeun nutup () bisa lumangsung saméméh fget () dieksekusi, nu bakal ngalieurkeun collector sampah sabab, nurutkeun refcount nu, struktur file moal boga rujukan éksternal, tapi bakal tetep napel na descriptor file, i.e. Kolektor sampah bakal nganggap yén éta ngagaduhan aksés ekslusif kana strukturna, tapi dina kanyataanana, pikeun waktos anu pondok, éntri sésana dina tabel deskriptor file masih bakal nunjuk ka struktur anu dibébaskeun.

Pikeun ngaronjatkeun kamungkinan meunang kana kaayaan lomba dipaké sababaraha trik, nu ngamungkinkeun pikeun ngaronjatkeun probabilitas sukses eksploitasi ka 30% nalika ngenalkeun optimizations husus sistem. Contona, pikeun ngaronjatkeun waktu ngakses struktur jeung deskriptor file ku sababaraha ratus nanodetik, data ieu digusur tina cache processor ku littering cache kalawan aktivitas dina inti CPU sejen, nu ngamungkinkeun pikeun meunangkeun deui struktur ti memori tinimbang ti. cache CPU gancang.

Fitur penting kadua nya éta pamakéan interrupts dihasilkeun ku timer hardware pikeun ngaronjatkeun waktu kaayaan lomba. Momen dipilih supados panangan interupsi bakal seuneu nalika kaayaan balapan lumangsung sareng ngaganggu palaksanaan kode pikeun sababaraha waktos. Jang meberkeun reureuh balik kontrol, ngeunaan 50 sarébu éntri dina antrian antrian dihasilkeun migunakeun epoll, nu diperlukeun neangan ngaliwatan panangan interupsi.

Téhnik pikeun ngeksploitasi kerentanan diungkabkeun saatos 90 dinten waktos henteu panyingkepan. Masalah mucunghul saprak kernel 2.6.32 sarta dibereskeun dina awal Désémber. Perbaikan ieu kalebet dina kernel 5.16 sareng ogé dialihkeun ka cabang LTS tina bungkusan kernel sareng kernel anu disayogikeun dina distribusi. Éta noteworthy yén kerentanan diidentifikasi nalika analisa masalah anu sami CVE-2021-0920, anu muncul dina tukang sampah nalika ngolah bandéra MSG_PEEK.

sumber: opennet.ru

Tambahkeun komentar