Vulnerabilità critica in l'implementazione Glibc di a funzione memcpy per ARMv7

Cisco Security Researchers scupertu i dettagli vulnerabilità (CVE-2020-6096) in l'implementazione di a funzione memcpy () furnita da Glibc per a piattaforma ARMv32 7-bit. U prublema hè causatu da una manipulazione incorrecta di i valori negativi di u paràmetru chì determina a dimensione di l'area copiata, per via di l'usu di ottimisazioni di assemblea chì manipulanu interi firmati 32-bit. Chjamà memcpy () nantu à i sistemi ARMv7 cù una dimensione negativa si traduce in paraguni sbagliati di valori è scrive in una zona fora di i limiti di u buffer specificatu.

A vulnerabilità pò esse sfruttata per eseguisce u codice in una situazione induve l'attaccante pò urganizà a furmazione di un valore negativu di a variàbile per mezu di quale a dimensione di e dati copiati hè trasmessa (per esempiu, andarà negativu quandu si trasferisce più di 2 GB di dati, ma durante l'attaccu, per andà oltre i limiti di u buffer, avete bisognu di trasfiriri almenu 4GB). A funzione memcpy () hè largamente usata in l'applicazioni, è i prucessori ARMv7 sò cumuni in sistemi di l'automobile, mobili, industriali, cunsumatori, cumunicazioni è dispusitivi integrati, chì sò potenzialmente sottumessi à attacchi cù Bluetooth, HD Radio / DAB, USB, CAN bus, Wi-Fi Fi è altre fonti di dati esterni (per esempiu, i servizii è l'applicazioni accessibili nantu à a reta chì accettanu dati di input senza restrizioni di dimensione ponu esse attaccati).

Un esempiu hè a creazione di un sfruttamentu di travagliu per attaccà un servitore HTTP integratu in sistemi d'infurmazione di l'automobile, accessibile via a rete Wi-Fi di l'automobile. Un attaccu esterno puderia sfruttà una vulnerabilità memcpy in stu servitore mandendu una dumanda GET assai grande è acquistà l'accessu root à u sistema.

Vulnerabilità critica in l'implementazione Glibc di a funzione memcpy per ARMv7

Nantu à i sistemi x32 86-bit, u prublema ùn appare micca, postu chì l'implementazione memcpy per questa architettura interpreta currettamente a variabile di dimensione cum'è un valore interu senza signu di tipu size_t (in lingua assemblea). implementazione per ARMv7 hè trattatu cum'è un integer firmatu invece di size_t). A correzione hè attualmente dispunibule cum'è patch, chì serà inclusu in l'aghjurnamentu di August Glibc 2.32.
A correzione si riduce à rimpiazzà l'usu di struzzioni di assemblea chì operanu nantu à l'operandi firmati (bge è blt) cù contraparti senza firma (blo è bhs).

U prublema ùn hè ancu risolta Debian 9 è 10 (micca visibile in Debian 8), Fedora, Ubuntu, OpenEmbedded, Tizen (usatu da glibc). RHEL и SUSE U prublema ùn hè micca affettatu perchè ùn sustene micca i sistemi ARMv32 7-bit. Android ùn hè micca affettatu da a vulnerabilità perchè usa a so propria implementazione libc (Bionic). IN openwrt Per automaticamente, a maiò parte di e custruzzioni utilizanu Musl, ma glibc hè ancu dispunibule in u repository.

Source: opennet.ru

Add a comment