Mkhalidwe wamtundu wa Linux kernel wotolera zinyalala zomwe zingayambitse mwayi wokwera

Jann Horn wa gulu la Google Project Zero, yemwe adazindikirapo zavuto la Specter ndi Meltdown, adafalitsa njira yopezera chiwopsezo (CVE-2021-4083) muzotolera zinyalala za Linux kernel. Chiwopsezochi chimachitika chifukwa cha mpikisano mukamatsuka zofotokozera zamafayilo pamasoketi a unix ndikulola wogwiritsa ntchito wamba kuti apereke nambala yawo pamlingo wa kernel.

Vutoli ndi losangalatsa chifukwa zenera la nthawi yomwe mpikisano umachitika likuyembekezeka kukhala laling'ono kwambiri kuti lipange zochitika zenizeni, koma mlembi wa kafukufukuyu adawonetsa kuti ngakhale ziwopsezo zokayikitsa zoyambazi zitha kukhala gwero la ziwopsezo zenizeni ngati wopanga adachitapo kanthu. luso lofunikira ndi nthawi. Yann Horn adawonetsa momwe, mothandizidwa ndi ma filigree manipulations, mungachepetsere mtundu womwe umachitika mukayitanira ntchito zapafupi () ndi fget () nthawi imodzi kukhala pachiwopsezo chogwiritsa ntchito pambuyo paulere ndikupeza mwayi wopeza zomwe zamasulidwa kale. kapangidwe mkati mwa kernel.

Mkhalidwe wa mpikisano umachitika panthawi yotseka chofotokozera fayilo ndikuyimba kutseka () ndi fget () nthawi yomweyo. Kuitana kutseka () kungachitike fget () isanaphedwe, zomwe zidzasokoneza wosonkhanitsa zinyalala chifukwa, molingana ndi refcount, mawonekedwe a fayilo sadzakhala ndi maumboni akunja, koma adzakhalabe ophatikizidwa ndi fayilo yofotokozera, i.e. Wosonkhanitsa zinyalala adzaganiza kuti ali ndi mwayi wokhazikika wokhazikika, koma kwenikweni, kwa kanthawi kochepa, zotsalira zotsalira pa tebulo lofotokozera mafayilo zidzasonyezabe kuti dongosololi lidzamasulidwa.

Pofuna kuonjezera mwayi wolowa mumpikisano wothamanga, njira zingapo zinagwiritsidwa ntchito, zomwe zinapangitsa kuti zikhale zotheka kuonjezera mwayi wopindula mpaka 30% poyambitsa kukhathamiritsa kwachindunji. Mwachitsanzo, kuti muwonjezere nthawi yofikira mawonekedwe okhala ndi zofotokozera zamafayilo ndi mazana angapo a nanoseconds, deta idachotsedwa mu cache ya purosesa mwa kuwononga cache ndi zochitika pachimake china cha CPU, zomwe zidapangitsa kuti zitheke kubweza zomwe zidakumbukiridwa m'malo mochokera. cache yachangu ya CPU.

Chinthu chachiwiri chofunikira chinali kugwiritsa ntchito zosokoneza zomwe zimapangidwa ndi timer ya hardware kuti muwonjezere nthawi ya mpikisano. Mphindiyo idasankhidwa kuti wosokonezayo aziwombera pakachitika mpikisano ndikusokoneza kukhazikitsidwa kwa codeyo kwakanthawi. Kuti achedwetse kubwezanso kwaulamuliro, zolembera pafupifupi 50 pamzere wodikirira zidapangidwa pogwiritsa ntchito epoll, zomwe zimafunikira kufufuza kudzera pa chowongolera chosokoneza.

Njira yogwiritsira ntchito chiwopsezo idawululidwa patatha masiku 90 osawululira. Vutoli likuwoneka kuyambira kernel 2.6.32 ndipo lidakhazikitsidwa koyambirira kwa Disembala. Kukonzekerako kudaphatikizidwa mu kernel 5.16 ndipo kudasamutsidwanso ku nthambi za LTS za kernel ndi phukusi la kernel lomwe limaperekedwa pogawa. Ndizofunikira kudziwa kuti chiwopsezochi chidadziwika pakuwunikanso vuto lofananira la CVE-2021-0920, lomwe limadziwonekera potolera zinyalala pokonza mbendera ya MSG_PEEK.

Source: opennet.ru

Kuwonjezera ndemanga