Mikilvægt varnarleysi í innleiðingu memcpy aðgerðarinnar fyrir ARMv7 frá Glibc

Cisco öryggisrannsakendur afhjúpað upplýsingar varnarleysi (CVE-2020-6096) í útfærslu á memcpy() aðgerðinni sem Glibc útvegaði fyrir 32 bita ARMv7 vettvang. Vandamálið stafar af rangri meðhöndlun á neikvæðum gildum færibreytunnar sem ákvarðar stærð afritaðs svæðis, vegna notkunar samsetningarhagræðingar sem vinna með undirritaðar 32 bita heiltölur. Að kalla memcpy() á ARMv7 kerfi með neikvæðri stærð leiðir til rangs samanburðar á gildum og skrifar á svæði utan marka tilgreinds biðminni.

Hægt er að nýta veikleikann til að keyra kóða í aðstæðum þar sem árásarmaðurinn getur skipulagt myndun neikvæðs gildis breytunnar sem stærð afritaðra gagna er send í gegnum (til dæmis verður það neikvæð þegar flutt er meira en 2 GB af gögn, en meðan á árás stendur, til að fara út fyrir biðminni, þarftu að flytja að minnsta kosti 4GB). Memcpy() aðgerðin er mikið notuð í forritum og ARMv7 örgjörvar eru algengir í bílakerfum, farsímum, iðnaðar-, neytenda-, samskiptum og innbyggðum tækjum, sem hugsanlega verða fyrir árásum með Bluetooth, HD Radio/DAB, USB, CAN bus, Hægt er að ráðast á Wi-Fi Fi og aðrar utanaðkomandi gagnagjafar (til dæmis þjónustu og forrit sem eru aðgengileg í gegnum netið og taka við inntaksgögnum án stærðartakmarkana).

Dæmi er að búa til starfandi hetjudáð til að ráðast á HTTP netþjón sem er innbyggður í upplýsingakerfi bifreiða, aðgengilegur í gegnum Wi-Fi net bifreiðarinnar. Utanaðkomandi árásarmaður gæti misnotað memcpy varnarleysi á þessum netþjóni með því að senda mjög stóra GET beiðni og fá rótaraðgang að kerfinu.

Mikilvægt varnarleysi í innleiðingu memcpy aðgerðarinnar fyrir ARMv7 frá Glibc

Í 32-bita x86 kerfum birtist vandamálið ekki, þar sem memcpy útfærslan fyrir þennan arkitektúr túlkar stærðarbreytuna rétt sem óundirritað heiltölugildi af gerðinni size_t (á samsetningarmáli framkvæmd fyrir ARMv7 er það meðhöndlað sem heiltala með tákni í stað size_t). Lagfæringin er fáanleg eins og er plástur, sem verður með í ágúst Glibc 2.32 uppfærslunni.
Lagfæringin snýst um að skipta um notkun samsetningarleiðbeininga sem starfa á undirrituðum operöndum (bge og blt) fyrir óundirritaða hliðstæðu (blo og bhs).

Vandamálið hefur ekki enn verið leyst Debian 9 og 10 (ekki sýnilegt í Debian 8), Fedora, ubuntu, OpenEmbedded, Tizen (notað af glibc). RHEL и suse Málið hefur ekki áhrif vegna þess að þau styðja ekki 32-bita ARMv7 kerfi. Android hefur ekki áhrif á varnarleysið vegna þess að það notar sína eigin libc (Bionic) útfærslu. IN OpenWRT Sjálfgefið er að flestar byggingar nota Musl, en glibc er einnig fáanlegt í geymslunni.

Heimild: opennet.ru

Bæta við athugasemd