Glibc වෙතින් ARMv7 සඳහා memcpy ශ්‍රිතය ක්‍රියාත්මක කිරීමේ තීරණාත්මක අවදානම

සිස්කෝ ආරක්ෂක පර්යේෂකයන් අනාවරණය කර ඇත විස්තර දුර්වලතා (CVE-2020-6096) 32-bit ARMv7 වේදිකාව සඳහා Glibc-සපයන ලද memcpy() ශ්‍රිතය ක්‍රියාත්මක කිරීමේදී. අත්සන් කරන ලද 32-බිට් නිඛිල හසුරුවන එකලස් කිරීමේ ප්‍රශස්තකරණයන් භාවිතා කිරීම හේතුවෙන්, පිටපත් කරන ලද ප්‍රදේශයේ ප්‍රමාණය තීරණය කරන පරාමිතියේ සෘණ අගයන් වැරදි ලෙස හැසිරවීම නිසා ගැටළුව ඇතිවේ. සෘණ ප්‍රමාණයකින් යුත් ARMv7 පද්ධති මත memcpy() ඇමතීමෙන් අගයන් වැරදි ලෙස සංසන්දනය කිරීම සහ නියමිත බෆරයේ සීමාවෙන් පිටත ප්‍රදේශයක ලිවීම සිදු වේ.

පිටපත් කරන ලද දත්තවල ප්‍රමාණය සම්ප්‍රේෂණය වන විචල්‍යයේ negative ණ අගයක් ගොඩනැගීමට ප්‍රහාරකයාට සංවිධානය කළ හැකි තත්වයක් තුළ කේතය ක්‍රියාත්මක කිරීමට අවදානම් ප්‍රයෝජනයට ගත හැකිය (උදාහරණයක් ලෙස, 2 GB ට වඩා මාරු කිරීමේදී එය සෘණාත්මක වනු ඇත. දත්ත, නමුත් ප්‍රහාරය අතරතුර, බෆර සීමාවන් ඉක්මවා යාමට, ඔබ අවම වශයෙන් 4GB වත් මාරු කළ යුතුය). memcpy() ශ්‍රිතය යෙදුම්වල බහුලව භාවිතා වන අතර බ්ලූටූත්, HD Radio/DAB, USB, CAN බස්, භාවිතයෙන් ප්‍රහාරවලට ලක්විය හැකි මෝටර් රථ පද්ධති, ජංගම, කාර්මික, පාරිභෝගික, සන්නිවේදන සහ කාවැද්දූ උපාංගවල ARMv7 ප්‍රොසෙසර බහුලව දක්නට ලැබේ. Wi-Fi Fi සහ අනෙකුත් බාහිර දත්ත මූලාශ්‍ර (උදාහරණයක් ලෙස, ප්‍රමාණයේ සීමාවන් නොමැතිව ආදාන දත්ත පිළිගන්නා ජාලය හරහා ප්‍රවේශ විය හැකි සේවාවන් සහ යෙදුම් වලට පහර දිය හැක).

උදාහරණයක් ලෙස, මෝටර් රථ Wi-Fi ජාලය හරහා ප්‍රවේශ විය හැකි මෝටර් රථ තොරතුරු පද්ධති තුළට ගොඩනගා ඇති HTTP සේවාදායකයකට පහර දීම සඳහා ක්‍රියාකාරී සූරාකෑමක් නිර්මාණය කිරීම. පිටස්තර ප්‍රහාරකයෙකුට ඉතා විශාල GET ඉල්ලීමක් යැවීමෙන් සහ පද්ධතියට root ප්‍රවේශය ලබා ගැනීමෙන් මෙම සේවාදායකයේ memcpy අවදානමක් ප්‍රයෝජනයට ගත හැක.

Glibc වෙතින් ARMv7 සඳහා memcpy ශ්‍රිතය ක්‍රියාත්මක කිරීමේ තීරණාත්මක අවදානම

32-bit x86 පද්ධති මත, ගැටළුව නොපෙනේ, මෙම ගෘහ නිර්මාණ ශිල්පය සඳහා memcpy ක්‍රියාත්මක කිරීම ප්‍රමාණයේ විචල්‍යය size_t වර්ගයේ අත්සන් නොකළ පූර්ණ සංඛ්‍යා අගයක් ලෙස නිවැරදිව අර්ථකථනය කරයි (එකලස් භාෂාවෙන් ක්රියාත්මක කිරීම ARMv7 සඳහා එය size_t වෙනුවට අත්සන් කරන ලද පූර්ණ සංඛ්‍යාව ලෙස සලකනු ලැබේ). නිවැරදි කිරීම දැනට ලබා ගත හැකිය පැච්, අගෝස්තු Glibc 2.32 යාවත්කාලීනයට ඇතුළත් වනු ඇත.
අත්සන් නොකළ සගයන් (blo සහ bhs) සමඟ අත්සන් කරන ලද ඔපෙරාන්ඩ් (bge සහ blt) මත ක්‍රියාත්මක වන එකලස් කිරීමේ උපදෙස් භාවිතය ප්‍රතිස්ථාපනය කිරීම සඳහා නිවැරදි කිරීම පහත වැටේ.

ගැටලුව තවමත් විසඳී නැත ඩේබියන් 9 සහ 10 (Debian 8 හි නොපෙනේ) Fedora, උබුන්ටු, OpenEmbedded, Tizen (glibc විසින් භාවිතා කරනු ලැබේ). රාල් и SUSE ඔවුන් 32-bit ARMv7 පද්ධති සඳහා සහය නොදක්වන නිසා ගැටලුව බලපාන්නේ නැත. Android එහිම libc (Bionic) ක්‍රියාත්මක කිරීම භාවිතා කරන බැවින් අවදානමට ලක් නොවේ. තුල OpenWRT පෙරනිමියෙන්, බොහෝ ගොඩනැගීම් Musl භාවිතා කරයි, නමුත් glibc ගබඩාවේ ද ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න