Дослідники безпеки з компанії Cisco
Вразливість може бути експлуатована для виконання коду в ситуації, коли атакуючий може організувати формування негативного значення змінної, через яку передається розмір даних, що копіюються (наприклад, догляд в мінус буде при передачі більше 2 ГБ даних, але в процесі атаки для виходу за межі буфера потрібно передати як мінімум 4ГБ). Функція memcpy() активно застосовується в додатках, а процесори ARMv7 поширені в автомобільних системах, мобільних, промислових, споживчих, комунікаційних та вбудованих пристроях, які потенційно можуть стати об'єктами атак з використанням Bluetooth, HD Radio/DAB, USB, CAN bus, Wi- Fi та інших зовнішніх джерел даних (наприклад, можуть бути атаковані доступні по мережі сервіси та програми, що приймають вхідні дані без обмеження розміру).
Як приклад наводиться створення робочого експлоїту для атаки на вбудований автомобільні інформаційні системи http-сервер, доступний через автомобільну Wi-Fi мережу. Сторонній атакуючий може експлуатувати вразливість у memcpy на даному сервері через передачу GET-запиту дуже великого розміру та отримати root-доступ до системи.
На 32-розрядних системах x86 проблема не проявляється, так як реалізація memcpy для даної архітектури коректно інтерпретує змінну з розміром як ціле беззнакове значення з типом size_t (в написаній на асемблері
Виправлення зводиться до заміни використання асемблерних інструкцій, що оперують знаковими операндами (bge та blt), на беззнакові аналоги (blo та bhs).
Проблема поки не усунена в
Джерело: opennet.ru