Rewşa nijadê di berhevkera çopê ya kernel Linux-ê de ku dikare bibe sedema zêdebûna îmtiyazê

Jann Horn ji tîmê Google Project Zero, yê ku carekê qelsiyên Specter û Meltdown nas kir, teknîkek ji bo îstismarkirina qelsiyek (CVE-2021-4083) di berhevkera çopê ya kernel Linux de weşand. Zehfbûn ji ber rewşek nijadî ye dema ku ravekerên pelan li ser soketên unix paqij dikin û bi potansiyel rê dide bikarhênerek bêdestûr a herêmî ku koda xwe di asta kernelê de bicîh bike.

Pirsgirêk balkêş e ji ber ku pencereya dema ku tê de rewşa nijadê diqewime hate texmîn kirin ku pir piçûk e ku meriv kedxwariyên rastîn biafirîne, lê nivîskarê lêkolînê destnîşan kir ku tewra lawaziyên weha yên destpêkê yên gumanbar jî dikarin bibin çavkaniya êrişên rastîn heke afirînerê kedxwariyê hebe. jêhatîbûn û dema pêwîst. Yann Horn destnîşan kir ku çawa, bi alîkariya manîpulasyonên filîgranî, hûn dikarin rewşa nijadê ya ku dema bangkirina fonksiyonên nêzîk() û fget() di heman demê de di nav xesarek bêkêmasî ya bêkêmasî de kêm bike û bigihîje daneyek jixwe azad. avahiya hundirê kernelê.

Di dema pêvajoya girtina ravekerê pelê de dema ku di heman demê de bangî close() û fget() tê kirin, rewşek pêşbaziyê pêk tê. Banga girtinê() dibe ku berî ku fget() were darvekirin, ev yek dê berhevkarê çopê tevlihev bike ji ber ku, li gorî vehejmarkirinê, strukturê pelê dê ne xwediyê referansên derveyî be, lê dê bi ravekera pelê ve girêdayî bimîne, ango. Berhevkarê çopê dê bifikire ku ew xwedan gihandina bêkêmasî ya strukturê ye, lê bi rastî, ji bo demek kurt, têketina mayî ya di tabloya ravekera pelê de dê dîsa jî nîşan bide ku avahî tê berdan.

Ji bo zêdekirina îhtîmala ketina nav rewşek pêşbaziyê, çend hîle hatin bikar anîn, ku ev gengaz kir ku dema danasîna xweşbîniyên pergalê-taybetî îhtîmala serkeftina îstismarkirinê ji% 30 zêde bike. Mînakî, ji bo zêdekirina dema gihîştina avahiyek bi ravekerên pelan bi çend sed nan çirkeyan, dane ji cache-ya pêvajoyê hate derxistin û cache bi çalakiya li ser bingehek din a CPU-yê ve hate rijandin, ku ev yek gengaz kir ku avahî ji bîrê were derxistin û ne ji cache CPU ya bilez.

Taybetmendiya duyemîn a girîng karanîna navberan bû ku ji hêla demjimêrek hardware ve hatî çêkirin da ku dema rewşa pêşbaziyê zêde bike. Dem hate hilbijartin da ku dema ku rewşek pêşbaziyê çêbibe rêkarê navberê bişewitîne û pêkanîna kodê ji bo demekê qut bike. Ji bo ku vegerandina kontrolê bêtir dereng bike, bi karanîna epoll-ê, ku hewcedarî lêgerîna bi navgîniya navberê bû, bi qasî 50 hezar têketin di rêza bendê de hatin çêkirin.

Teknîka ji bo îstismarkirina qelsiyê piştî 90-rojî heyama neşopandinê hate eşkere kirin. Pirsgirêk ji kernel 2.6.32 ve xuya dike û di destpêka Kanûnê de hate rast kirin. Rastkirin di kernel 5.16-ê de bû û di heman demê de ji şaxên LTS yên pakêtên kernel û kernel ên ku di belavkirinan de têne peyda kirin jî hate veguheztin. Hêjayî balkişandinê ye ku di dema analîzkirina pirsgirêkek wusa CVE-2021-0920 de qelsî hate nas kirin, ku dema ku ala MSG_PEEK hildiweşîne xwe di berhevkerê çopê de diyar dike.

Source: opennet.ru

Add a comment