Kritesch Schwachstelle bei der Ëmsetzung vun der memcpy Funktioun fir ARMv7 vu Glibc

Cisco Sécherheet Fuerscher opgedeckt d 'Detailer Schwachstelle (CVE-2020-6096) an der Ëmsetzung vun der Glibc-versuergt memcpy () Funktioun fir d'32-bëssen ARMv7 Plattform. De Problem ass verursaacht duerch falsch Handhabung vun den negativen Wäerter vum Parameter, deen d'Gréisst vum kopéierte Gebitt bestëmmt, wéinst der Verwäertung vun Assembléeoptimiséierungen déi ënnerschriwwen 32-Bit ganz Zuelen manipuléieren. Rufft memcpy () op ARMv7 Systemer mat enger negativer Gréisst resultéiert am falsche Verglach vu Wäerter a schreift an engem Gebitt ausserhalb vun de Grenze vum spezifizéierte Puffer.

D'Schwachheet kann ausgenotzt ginn fir Code auszeféieren an enger Situatioun wou den Ugräifer d'Bildung vun engem negativen Wäert vun der Variabel organiséieren kann, duerch déi d'Gréisst vun de kopéierten Donnéeën iwwerdroe gëtt (zum Beispill gëtt et negativ wann Dir méi wéi 2 GB vun Daten, awer während der Attack, fir iwwer d'Puffergrenzen ze goen, musst Dir op d'mannst 4GB transferéieren). D'memcpy () Funktioun gëtt wäit an Uwendungen benotzt, an ARMv7 Prozessoren sinn heefeg an Autossystemer, mobilen, industriellen, Konsumenten, Kommunikatiounen an embedded Geräter, déi potenziell ënner Attacke mat Bluetooth, HD Radio / DAB, USB, CAN Bus, Wi-Fi Fi an aner extern Datenquellen (zum Beispill Servicer an Uwendungen, déi iwwer dem Netz zougänglech sinn, déi Inputdaten ouni Gréisstbeschränkungen akzeptéieren kënnen ugegraff ginn).

E Beispill ass d'Schafung vun engem funktionnéierende Exploit fir en HTTP-Server ze attackéieren, deen an Autosinformatiounssystemer gebaut ass, zougänglech iwwer den Autos Wi-Fi Netzwierk. En externen Ugräifer kéint eng memcpy Schwachstelle op dësem Server ausnotzen andeems en eng ganz grouss GET Ufro schéckt a Root Zougang zum System kritt.

Kritesch Schwachstelle bei der Ëmsetzung vun der memcpy Funktioun fir ARMv7 vu Glibc

Op 32-Bit x86 Systemer erschéngt de Problem net, well d'memcpy-Implementatioun fir dës Architektur d'Gréisstvariabel korrekt interpretéiert als en net ënnerschriwwenen ganzer Wäert vum Typ size_t (an der Versammlungssprooch Ëmsetzung fir ARMv7 gëtt et als ënnerschriwwen ganz Zuel anstatt size_t behandelt). De Fix ass de Moment verfügbar als flécken, déi am August Glibc 2.32 Update abegraff gëtt.
D'Fix dréit op d'Ersatz vun der Benotzung vun Montageinstruktiounen déi op ënnerschriwwene Operander operéieren (bge a blt) mat net ënnerschriwwene Géigeparteien (blo an bhs).

De Problem ass nach net geléist Debian 9 an 10 (net sichtbar an Debian 8), Fedora, Ubuntu, OpenEmbedded, Tizen (benotzt vu glibc). RHEL и SUSE D'Thema ass net beaflosst well se net 32-Bit ARMv7 Systemer ënnerstëtzen. Android ass net vun der Schwachstelle beaflosst well et seng eege libc (Bionic) Implementatioun benotzt. IN oppenwrt Par défaut benotzen déi meescht Builds Musl, awer glibc ass och am Repository verfügbar.

Source: opennet.ru

Setzt e Commentaire