Vilnerabilite nan nwayo Linux la ki pèmèt fichye lekti sèlman yo pèvèti

Yo te idantifye yon vilnerabilite nan nwayo Linux la (CVE-2022-0847) ki pèmèt sa ki nan kachèt paj la dwe ranplase pou nenpòt ki dosye, ki gen ladan sa yo ki nan mòd lekti sèlman, ki louvri ak drapo O_RDONLY, oswa ki sitiye sou sistèm dosye. monte nan mòd lekti sèlman. An tèm pratik, vilnerabilite a ta ka itilize pou enjekte kòd nan pwosesis abitrè oswa done koripsyon nan dosye louvri. Pou egzanp, ou ka chanje sa ki nan fichye authorized_keys pou pwosesis sshd la. Yon pwototip eksplwatasyon an disponib pou tès.

Pwoblèm lan te nonmen kod Dirty Pipe, menm jan ak vilnerabilite kritik Dirty COW te idantifye an 2016. Li te note ke an tèm de nivo danje, Dirty Pipe se sou menm nivo ak Dirty COW, men li pi fasil yo opere. Yo te idantifye vilnerabilite a pandan analiz la nan plent sou koripsyon peryodik nan dosye telechaje sou rezo a nan yon sistèm telechaje achiv konprese soti nan yon sèvè boutèy demi lit (37 koripsyon nan 3 mwa sou yon sistèm chaje), preparasyon an nan ki te itilize operasyon an splice() ak tiyo san non.

Vilnerabilite a parèt kòmanse ak Kernel Linux 5.8, ki te pibliye nan mwa Out 2020, i.e. prezan nan Debian 11, men li pa afekte nwayo baz la nan Ubuntu 20.04 LTS. RHEL 8.x ak openSUSE/SUSE 15 nwayo yo okòmansman baze sou ansyen branch yo, men li posib ke chanjman ki lakòz pwoblèm nan te backported nan yo (pa gen okenn done egzak ankò). Ou ka swiv piblikasyon mizajou pake yo nan distribisyon sou paj sa yo: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Yon ranje pou vilnerabilite a te pwopoze nan degaje 5.16.11, 5.15.25 ak 5.10.102. Se ranje a tou enkli nan nwayo a yo itilize nan platfòm la android.

Se vilnerabilite a ki te koze pa mank de inisyalizasyon nan "buf->drapo" valè nan kòd la nan fonksyon yo copy_page_to_iter_pipe() ak push_pipe (), malgre lefèt ke memwa a pa efase lè allocation yon estrikti ak pandan sèten manipilasyon ak tiyo san non, yon valè ki soti nan yon lòt operasyon. Sèvi ak karakteristik sa a, yon itilizatè lokal ki pa gen privilèj ka reyalize aparans nan valè PIPE_BUF_FLAG_CAN_MERGE nan drapo a, ki pèmèt ou òganize ranplasman done nan kachèt paj la lè w tou senpleman ekri nouvo done nan yon tiyo ki pa nonmen espesyalman prepare.

Pou yon atak, fichye sib la dwe lizib, epi kòm dwa aksè yo pa tcheke lè w ap ekri nan tiyo, ranplasman nan kachèt paj la ka fèt tou pou dosye ki sitiye nan patisyon ki monte lekti sèlman (pa egzanp, pou dosye c CD- ROM). Apre w fin ranplase enfòmasyon ki nan kachèt paj la, lè w ap li done ki sòti nan yon dosye, pwosesis la ap resevwa pa done aktyèl la, men done ki ranplase yo.

Operasyon vin desann nan kreye yon chanèl san non epi ranpli li ak done abitrè yo nan lòd asire ke drapo a PIPE_BUF_FLAG_CAN_MERGE mete nan tout estrikti bag ki asosye ak li. Apre sa, done yo li nan tiyo a, men drapo a rete mete nan tout ka nan estrikti nan pipe_buffer nan estrikti yo bag pipe_inode_info. Lè sa a, yo fè yon apèl nan episur () li done ki soti nan fichye a sib nan yon tiyo san non, kòmanse nan konpanse a vle. Lè w ap ekri done nan tiyo ki pa gen non sa a, akòz drapo PIPE_BUF_FLAG_CAN_MERGE yo tabli, done ki nan kachèt paj la pral ranplase olye pou yo kreye yon nouvo egzanp estrikti pipe_buffer la.

Sous: opennet.ru

Add nouvo kòmantè