Cisco biztonsági kutatók
A sérülékenység kihasználható kód futtatására olyan helyzetben, amikor a támadó meg tudja szervezni annak a változónak a negatív értékét, amelyen keresztül a másolt adatok mérete továbbítódik (például 2 GB-nál nagyobb adat átvitele esetén negatív lesz). adatok, de a támadás során a pufferkorlátok túllépéséhez legalább 4 GB-ot kell átvinni). A memcpy() függvényt széles körben használják alkalmazásokban, és az ARMv7 processzorok gyakoriak az autóipari rendszerekben, mobil-, ipari, fogyasztói, kommunikációs és beágyazott eszközökben, amelyek potenciálisan ki vannak téve a Bluetooth, HD Radio/DAB, USB, CAN busz, Wi-Fi Fi és egyéb külső adatforrások (például a hálózaton keresztül elérhető szolgáltatások és alkalmazások, amelyek méretkorlátozás nélkül fogadják a bemeneti adatokat, megtámadhatók).
Példa erre egy működő exploit létrehozása az autóinformációs rendszerekbe épített HTTP szerver megtámadására, amely az autó Wi-Fi hálózatán keresztül érhető el. Egy külső támadó kihasználhat egy memcpy biztonsági rést ezen a kiszolgálón egy nagyon nagy GET kérés küldésével, és root hozzáférést szerezhet a rendszerhez.
A 32 bites x86 rendszereken a probléma nem jelentkezik, mivel a memcpy implementáció ehhez az architektúrához helyesen értelmezi a méretváltozót egy size_t típusú előjel nélküli egész értékként (összeállítás nyelven
A javítás lényege, hogy az aláírt operandusokon (bge és blt) működő összeállítási utasításokat előjel nélküli megfelelőkkel (blo és bhs) cseréljük le.
A probléma még nem oldódott meg
Forrás: opennet.ru