Mga Mananaliksik sa Seguridad ng Cisco
Maaaring samantalahin ang kahinaan upang magsagawa ng code sa isang sitwasyon kung saan maaaring ayusin ng umaatake ang pagbuo ng negatibong halaga ng variable kung saan ipinapadala ang laki ng kinopyang data (halimbawa, magiging negatibo ito kapag naglilipat ng higit sa 2 GB ng data, ngunit sa panahon ng pag-atake, upang lumampas sa mga limitasyon ng buffer, kailangan mong maglipat ng hindi bababa sa 4GB). Ang memcpy() function ay malawakang ginagamit sa mga application, at ang mga processor ng ARMv7 ay karaniwan sa mga automotive system, mobile, industriyal, consumer, komunikasyon at mga naka-embed na device, na posibleng napapailalim sa mga pag-atake gamit ang Bluetooth, HD Radio/DAB, USB, CAN bus, Ang Wi-Fi Fi at iba pang panlabas na pinagmumulan ng data (halimbawa, ang mga serbisyo at application na naa-access sa network na tumatanggap ng data ng input nang walang mga paghihigpit sa laki ay maaaring atakehin).
Ang isang halimbawa ay ang paglikha ng isang gumaganang pagsasamantala upang atakehin ang isang HTTP server na binuo sa mga sistema ng impormasyon ng sasakyan, na naa-access sa pamamagitan ng network ng Wi-Fi ng sasakyan. Maaaring samantalahin ng isang panlabas na umaatake ang isang kahinaan ng memcpy sa server na ito sa pamamagitan ng pagpapadala ng napakalaking kahilingan sa GET at makakuha ng root access sa system.
Sa 32-bit x86 system, hindi lilitaw ang problema, dahil ang pagpapatupad ng memcpy para sa arkitektura na ito ay wastong binibigyang-kahulugan ang variable ng laki bilang isang unsigned integer na halaga ng uri size_t (sa wika ng pagpupulong
Ang pag-aayos ay nagmumula sa pagpapalit sa paggamit ng mga tagubilin sa pagpupulong na gumagana sa mga naka-sign na operand (bge at blt) ng mga hindi nakapirmang katapat (blo at bhs).
Hindi pa nareresolba ang problema
Pinagmulan: opennet.ru