Cercetătorii de securitate Cisco
Vulnerabilitatea poate fi exploatată pentru a executa cod într-o situație în care atacatorul poate organiza formarea unei valori negative a variabilei prin care se transmite dimensiunea datelor copiate (de exemplu, aceasta va deveni negativă la transferul a mai mult de 2 GB de date, dar în timpul atacului, pentru a depăși limitele buffer-ului, trebuie să transferați cel puțin 4 GB). Funcția memcpy() este utilizată pe scară largă în aplicații, iar procesoarele ARMv7 sunt comune în sistemele auto, dispozitivele mobile, industriale, de consum, de comunicații și încorporate, care pot fi supuse atacurilor prin Bluetooth, HD Radio/DAB, USB, magistrala CAN, Wi-Fi și alte surse de date externe (de exemplu, serviciile și aplicațiile accesibile prin rețea care acceptă date de intrare fără restricții de dimensiune pot fi atacate).
Un exemplu este crearea unui exploit de lucru pentru a ataca un server HTTP încorporat în sistemele de informații auto, accesibil prin rețeaua Wi-Fi a automobilului. Un atacator extern ar putea exploata o vulnerabilitate memcpy pe acest server prin trimiterea unei cereri GET foarte mare și să obțină acces root la sistem.
Pe sistemele x32 pe 86 de biți, problema nu apare, deoarece implementarea memcpy pentru această arhitectură interpretează corect variabila dimensiune ca o valoare întreagă fără semn de tip size_t (în limbajul de asamblare
Remedierea se rezumă la înlocuirea folosirii instrucțiunilor de asamblare care funcționează pe operanzi semnati (bge și blt) cu omologi nesemnați (blo și bhs).
Problema nu a fost încă rezolvată
Sursa: opennet.ru