Linuxi tuumas avastatud haavatavus, mis vÔimaldab muuta ainult lugemiseks mÔeldud faile.

Linuxi tuumas avastati haavatavus (CVE-2022-0847), mis vĂ”imaldab ĂŒle kirjutada mĂ€lukahtluse sisu kĂ”igi failide jaoks, sealhulgas ka ainult lugemisreĆŸiimis avatud failide jaoks, mis on avatud O_RDONLY lipuga vĂ”i ĂŒhendatud ainult lugemisreĆŸiimis failisĂŒsteemidega. Praktiliselt toob see haavatavus kaasa, et seda saab kasutada koodi sisestamiseks suvalistesse protsessidesse vĂ”i failide avamise kĂ€igus andmete moonutamiseks. NĂ€iteks on vĂ”imalik muuta authorized_keys faili sisu sshd protsessi jaoks. Testimiseks on saadaval eksploitide prototĂŒĂŒp.

Probleem sai koodnime Dirty Pipe, sarnaselt 2016. aastal avastatud kriitilisele haavatavusele Dirty COW. TĂ”detakse, et ohu taseme poolest on Dirty Pipe samal tasemel nagu Dirty COW, kuid palju lihtsamini Ă€ra kasutatav. Haavatavus tuvastati kaebuste analĂŒĂŒsi kĂ€igus, mis puudutas vĂ”rgu kaudu laaditavate failide perioodilisi riknemisi sĂŒsteemis, mis laadis kokkutĂ”mmatud arhiive logiserverist (3 kuu jooksul 37 riknemist koormatud sĂŒsteemis), mille ettevalmistamisel kasutati splice() operatsiooni ja nimetamata torusid.

Haavatavus ilmneb alates Linuxi tuumast 5.8, mis ilmus 2020. aasta augustis, st see on olemas Debian 11-s, kuid ei mÔjuta Ubuntu 20.04 LTS pÔhituuma. RHEL 8.x ja openSUSE/SUSE 15 tuumad pÔhinevad algselt vanadel harudel, kuid ei saa vÀlistada, et probleemsed muudatused on neisse tagatud (tÀpseid andmeid pole veel). Pakettide uuenduste avaldamise jÀlgimiseks distributsioonides saab kasutada jÀrgmistel lehtedel: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Haavatavuse kÔrvaldamine on pakutud versioonides 5.16.11, 5.15.25 ja 5.10.102. Parandus on samuti kaasatud Androidi platvormil kasutatavasse tuuma.

Haavatavuse pĂ”hjuseks on 'buf->flags' vÀÀrtuse initsialiseerimise puudumine copy_page_to_iter_pipe() ja push_pipe() funktsioonide koodis, arvestades, et struktuuri mÀÀramisel ei puhastata mĂ€lu ja teatud manipulatsioonide kĂ€igus nimetamata torudega vĂ”ib 'buf->flags' sisaldada vÀÀrtust, mis pĂ€rineb teisest operatsioonist. Selle omaduse abil saab priviligeerimata kohalik kasutaja saavutada, et lipu vÀÀrtuseks peab 'PIPE_BUF_FLAG_CAN_MERGE', mis vĂ”imaldab andmete ĂŒle kirjutamist lehevahetuses, kirjutades lihtsalt uusi andmeid ettevalmistatud nimetamata torusse (pipe).

RĂŒnde fail peab olema loetav, kuna toru kirjutamisel Ă”igusi ei kontrollita, vĂ”ib vahemĂ€lu asendamine toimuda ka ainult lugemiseks monteeritud osade failide suhtes (nĂ€iteks CD-ROM-i failide puhul). PĂ€rast teabe asendamist lehe vahemĂ€lus saab protsess faili lugemisel vale, mitte tegeliku teabe.

Kasutamine seisneb nimetu toru loomises ja selle tĂ€itmises suvaliste andmetega, et saavutada PIPE_BUF_FLAG_CAN_MERGE lipu seadmine kĂ”igis seotud ringstruktuurides. SeejĂ€rel loetakse andmed torust, kuid lipp jÀÀb seatuks kĂ”igis pipe_buffer ringstruktuuride eksemplarides. SeejĂ€rel kutsutakse splice() andmete lugemiseks sihtfailist nimetu torusse, alustades vajalikust nihkes. Kui andmeid sellele nimetud torule kirjutatakse, siis seatud PIPE_BUF_FLAG_CAN_MERGE lipu tĂ”ttu kirjutatakse andmed vahemĂ€lus ĂŒle, mitte ei loodud uut pipe_buffer struktuuri eksemplari.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster