محققان امنیت سیسکو
این آسیبپذیری میتواند برای اجرای کد مورد سوء استفاده قرار گیرد در شرایطی که مهاجم میتواند تشکیل یک مقدار منفی متغیری را که از طریق آن اندازه دادههای کپیشده منتقل میشود سازماندهی کند (مثلاً هنگام انتقال بیش از ۲ گیگابایت منفی میشود. داده ها، اما در طول حمله، برای فراتر رفتن از محدودیت های بافر، باید حداقل 2 گیگابایت انتقال دهید). تابع ()memcpy به طور گسترده در برنامهها استفاده میشود و پردازندههای ARMv4 در سیستمهای خودرو، موبایل، صنعتی، مصرفکننده، ارتباطات و دستگاههای تعبیهشده رایج هستند که به طور بالقوه در معرض حملات با استفاده از بلوتوث، رادیو HD/DAB، USB، گذرگاه CAN، Wi-Fi و سایر منابع داده خارجی (به عنوان مثال، سرویس ها و برنامه های قابل دسترسی از طریق شبکه که داده های ورودی را بدون محدودیت اندازه می پذیرند، می توانند مورد حمله قرار گیرند).
به عنوان مثال ایجاد یک اکسپلویت کار برای حمله به سرور HTTP ساخته شده در سیستم های اطلاعات خودرو، قابل دسترسی از طریق شبکه Wi-Fi خودرو است. یک مهاجم خارجی می تواند با ارسال یک درخواست GET بسیار بزرگ از یک آسیب پذیری memcpy در این سرور سوء استفاده کند و به سیستم دسترسی ریشه داشته باشد.
در سیستم های 32 بیتی x86، مشکل ظاهر نمی شود، زیرا پیاده سازی memcpy برای این معماری به درستی متغیر اندازه را به عنوان یک مقدار صحیح بدون علامت از نوع size_t (در زبان اسمبلی) تفسیر می کند.
این اصلاح به جایگزینی استفاده از دستورالعملهای اسمبلی که بر روی عملوندهای امضا شده (bge و blt) کار میکنند با همتاهای بدون علامت (blo و bhs) خلاصه میشود.
مشکل هنوز حل نشده است
منبع: opennet.ru