Turvalisuuringute spetsialistid ettevĂ”ttest Cisco detailid () Glibc'i malloc() funktsiooni rakenduses 32-bitiste ARMv7 platvormide jaoks. Probleem tuleneb negatiivsete vÀÀrtuste vale töötlemise tĂ”ttu parameetris, mis mÀÀrab kopeeritava ala suuruse, kasutades assembleri optimeeringuid, mis manipuleerivad mĂ€rgitud 32-bitiste tĂ€isarvudega. memcpy() vĂ€ljakutse ARMv7 sĂŒsteemides negatiivse suurusega toob kaasa vale vÀÀrtuste vĂ”rdlemise ja kirjutamise vĂ€ljaspool mÀÀratud puhvri piire.
Haavatavust saab kuritarvitada koodi kĂ€itamiseks olukordades, kus rĂŒndaja suudab korraldada negatiivse vÀÀrtuse muutujas, mille kaudu edastatakse kopeeritavate andmete suurus (nĂ€iteks minusesse minek toimub, kui edastatakse ĂŒle 2 GB andmeid, kuid rĂŒnnaku kĂ€igus, et ĂŒletada puhvri piire, tuleb edastada vĂ€hemalt 4GB). memcpy() funktsiooni kasutatakse laialdaselt rakendustes, ning ARMv7 protsessorid on levinud automobile, mobiilsetes, tööstuslikes, tarbijasektoris, side- ja sisseehitatud seadmetes, mis vĂ”ivad potentsiaalselt muutuda rĂŒnnakute sihtmĂ€rkideks, kasutades Bluetoothi, HD Radio / DAB, USB, CAN bussi, Wi-Fi ja muid vĂ€liseid andmeallikaid (nĂ€iteks vĂ”ivad olla rĂŒnnatud vĂ”rgus kergesti kĂ€ttesaadavad teenused ja rakendused, mis aktsepteerivad sisendit suuruse piirest sĂ”ltumatult).
NĂ€itena toome esile töötava eksploidi loomise rĂŒnnakuks autode infotehnoloogiliste sĂŒsteemide HTTP-serverile, mis on juurdepÀÀsetav auto Wi-Fi vĂ”rgus. Kolmas osapool saab kuritarvitada memcpy haavatavust selles serveris, edastades vĂ€ga suure GET-pĂ€ringu, ja saada root-juurdepÀÀsu sĂŒsteemile.
32-bitistes x86 sĂŒsteemides probleem ei ilmne, kuna memcpy'i rakendus selle arhitektuuri jaoks tĂ”lgendab muutuja suuruse Ă”igesti kui mĂ€rketa tĂ€isarvutable nimega size_t (kokku kirjutatud assembleris , ARMv7 jaoks töödeldakse seda kui signeeritud tĂ€isarv). Parandus on hetkel saadaval , mis kuulub augustikuu Glibc 2.32 uuendusse.
Parandus seisneb assemblin instruktsioonide, mis opereerivad mÀrkidega operandidega (bge ja blt), asendamises mÀrketa analoogidega (blo ja bhs).
Probleem ei ole veel lahendatud (Debian 8 ei esine), , , OpenEmbedded, Tizen (kasutab glibc). ja probleem ei puuduta, kuna nad ei toeta 32-bitiseid ARMv7 sĂŒsteeme. Android ei ole haavatav, kuna kasutab oma libc (Bionic) teostust. vaikimisi kasutatakse enamikus seadistustes Musl, kuid repositooriumis on ka glibc.
Allikas: opennet.ru
