د Glibc څخه د ARMv7 لپاره د memcpy فنکشن پلي کولو کې جدي زیان منونکي

د سیسکو امنیت څیړونکي پټ شوی تفصیلات زیانمنتیاوې (CVE-2020-6096) د 32-bit ARMv7 پلیټ فارم لپاره د Glibc لخوا چمتو شوي memcpy() فنکشن پلي کولو کې. ستونزه د پیرامیټر منفي ارزښتونو ناسم اداره کولو له امله رامینځته شوې چې د کاپي شوي ساحې اندازه ټاکي ، د اسمبلۍ اصلاح کولو کارولو له امله چې لاسلیک شوي 32-بټ انټیجرونه اداره کوي. په ARMv7 سیسټمونو کې د memcpy() زنګ وهل د منفي اندازې سره د ارزښتونو غلط پرتله کولو پایله کوي او د ټاکل شوي بفر له حدودو بهر په ساحه کې لیکي.

زیانمنتیا په داسې حالت کې د کوډ اجرا کولو لپاره کارول کیدی شي چیرې چې برید کونکی کولی شي د متغیر منفي ارزښت رامینځته کولو تنظیم کړي چې له لارې د کاپي شوي ډیټا اندازه لیږدول کیږي (د مثال په توګه ، دا به منفي شي کله چې له 2 GB څخه ډیر لیږدول کیږي. ډاټا، مګر د برید په جریان کې، د بفر حد څخه هاخوا ته لاړ شئ، تاسو اړتیا لرئ لږترلږه 4GB لیږد کړئ). د memcpy() فنکشن په پراخه کچه په غوښتنلیکونو کې کارول کیږي، او د ARMv7 پروسیسرونه په اتوماتیک سیسټمونو، ګرځنده، صنعتي، مصرف کونکي، مخابراتو او سرایت شوي وسایلو کې عام دي، کوم چې په بالقوه توګه د بلوتوت، HD راډیو/DAB، USB، CAN بس، په کارولو سره د بریدونو تابع دي. د وای فای فای او نورې بهرنۍ ډیټا سرچینې (د بیلګې په توګه، په شبکه کې د لاسرسي وړ خدمتونه او غوښتنلیکونه چې د اندازې محدودیتونو پرته د ان پټ ډیټا مني برید کیدی شي).

یوه بیلګه د آټوموبایل معلوماتو سیسټمونو کې رامینځته شوي HTTP سرور برید کولو لپاره د کاري استحصال رامینځته کول دي چې د آټوموبایل وای فای شبکې له لارې د لاسرسي وړ دي. یو بهرنی برید کونکی کولی شي د خورا لوی GET غوښتنې په لیږلو سره پدې سرور کې د memcpy زیان څخه ګټه پورته کړي او سیسټم ته روټ لاسرسی ترلاسه کړي.

د Glibc څخه د ARMv7 لپاره د memcpy فنکشن پلي کولو کې جدي زیان منونکي

په 32-bit x86 سیسټمونو کې، ستونزه نه ښکاري، ځکه چې د دې جوړښت لپاره د memcpy تطبیق په سمه توګه د اندازې متغیر د ډول اندازه_t د غیر لاسلیک شوي انټیجر ارزښت په توګه تشریح کوي (په اسمبلی ژبه کې تطبيق د ARMv7 لپاره دا د size_t پر ځای د لاسلیک شوي عدد په توګه چلند کیږي). فکس اوس مهال په توګه شتون لري پیچ، کوم چې به د اګست ګلیبیک 2.32 تازه کې شامل شي.
فکس د اسمبلۍ لارښوونو کارولو ځای په ځای کولو لپاره غوړیږي چې په لاسلیک شوي عملیاتونو (bge او blt) کې د غیر لاسلیک شوي همکارانو (blo او bhs) سره کار کوي.

ستونزه تر اوسه نه ده حل شوې دبیان 9 او 10 (په Debian 8 کې نه لیدل کیږي) فیډورا, د وبنټو, OpenEmbedded, Tizen (د glibc لخوا کارول کیږي). RHEL и SUSE مسله اغیزمنه شوې نه ده ځکه چې دوی د 32-bit ARMv7 سیسټمونو ملاتړ نه کوي. Android د زیان منونکي لخوا نه اغیزمن کیږي ځکه چې دا د خپل libc (Bionic) تطبیق کاروي. IN OpenWRT په ډیفالټ کې، ډیری جوړونه Musl کاروي، مګر glibc په ذخیره کې هم شتون لري.

سرچینه: opennet.ru

Add a comment