ለ ARMv7 የ memcpy ተግባርን ከግሊቢክ በመተግበር ላይ ወሳኝ ተጋላጭነት

Cisco ደህንነት ተመራማሪዎች ያልተሸፈነ ዝርዝሮችን። ድክመቶች (CVE-2020-6096) ለ32-ቢት ARMv7 መድረክ በGlibc የቀረበ memcpy() ተግባርን በመተግበር ላይ። ችግሩ የተከሰተው የተገለበጠውን ቦታ መጠን የሚወስነውን የመለኪያ አሉታዊ እሴቶችን በተሳሳተ መንገድ በመያዝ ነው ፣ ምክንያቱም የተፈረመ ባለ 32-ቢት ኢንቲጀርን በመጠቀም የመሰብሰቢያ ማሻሻያዎችን በመጠቀም። በ ARMv7 ስርዓቶች ላይ memcpy () መደወል አሉታዊ መጠን የተሳሳተ የእሴቶችን ንፅፅር ያስከትላል እና ከተጠቀሰው ቋት ወሰን ውጭ በሆነ አካባቢ ይጽፋል።

ተጋላጭነቱ አጥቂው የተገለበጠው መረጃ መጠን የሚተላለፍበት የተለዋዋጭ አሉታዊ እሴት ምስረታ ማደራጀት በሚችልበት ሁኔታ ኮድ ለማስፈፀም ሊበዘበዝ ይችላል (ለምሳሌ ከ 2 ጂቢ በላይ ሲያስተላልፍ አሉታዊ ይሆናል) ውሂብ, ነገር ግን በጥቃቱ ጊዜ, ከጠባቂው ገደብ በላይ ለመሄድ, ቢያንስ 4 ጂቢ ማስተላለፍ ያስፈልግዎታል). የ memcpy() ተግባር በአፕሊኬሽኖች ውስጥ በስፋት ጥቅም ላይ የዋለ ሲሆን ARMv7 ፕሮሰሰሮች በአውቶሞቲቭ ሲስተም ፣ሞባይል ፣ኢንዱስትሪ ፣ሸማች ፣ግንኙነቶች እና በተከተቱ መሳሪያዎች ላይ የተለመዱ ናቸው ፣ይህም በብሉቱዝ ፣ HD Radio/DAB ፣ USB ፣ CAN አውቶቡስ ፣ ዋይ ፋይ እና ሌሎች የውጪ የመረጃ ምንጮች (ለምሳሌ በአውታረ መረቡ ሊደረስባቸው የሚችሉ አገልግሎቶች እና አፕሊኬሽኖች የግቤት ውሂብ ያለ መጠን ገደብ የሚቀበሉ) ጥቃት ሊደርስባቸው ይችላል።

በአውቶሞቢል ዋይ ፋይ አውታረመረብ በኩል በአውቶሞቢል መረጃ ሲስተም ውስጥ የተሰራውን የኤችቲቲፒ አገልጋይ ለማጥቃት የሚሰራ የብዝበዛ መፈጠር ምሳሌ ነው። የውጭ አጥቂ በጣም ትልቅ የGET ጥያቄን በመላክ እና ወደ ስርዓቱ ስርወ መዳረሻን በመላክ በዚህ አገልጋይ ላይ memcpy ተጋላጭነትን ሊጠቀም ይችላል።

ለ ARMv7 የ memcpy ተግባርን ከግሊቢክ በመተግበር ላይ ወሳኝ ተጋላጭነት

በ32-ቢት x86 ሲስተሞች ላይ የዚህ አርክቴክቸር memcpy አተገባበር መጠኑን ልክ እንደ ያልተፈረመ የኢንቲጀር አይነት መጠን_ቲ (በመሰብሰቢያ ቋንቋ) በትክክል ስለሚተረጉመው ችግሩ አይታይም። ትግበራ ለ ARMv7 ከ size_t ይልቅ እንደ የተፈረመ ኢንቲጀር ይቆጠራል)። ማስተካከያው በአሁኑ ጊዜ እንደ ጠጋኝበነሐሴ Glibc 2.32 ዝመና ውስጥ የሚካተት።
ማስተካከያው በተፈረሙ ኦፔራዎች (bge እና blt) ላይ የሚሰሩ የመሰብሰቢያ መመሪያዎችን ባልተፈረሙ አቻዎች (ብሎ እና bhs) ለመተካት ይዘጋጃል።

ችግሩ እስካሁን አልተፈታም። ዴቢያን 9 እና 10 (በዴቢያን 8 ላይ አይታይም) Fedora, ኡቡንቱ፣ ክፍት ኢምብድድ ፣ ቲዘን (በ glibc ጥቅም ላይ የዋለ)። RHEL и SUSE ባለ 32-ቢት ARMv7 ስርዓቶችን ስለማይደግፉ ጉዳዩ አልተነካም። አንድሮይድ በተጋላጭነቱ አይጎዳውም ምክንያቱም የራሱን ሊቢክ (ባዮኒክ) አተገባበር ይጠቀማል። ውስጥ OpenWRT በነባሪ፣ አብዛኞቹ ግንባታዎች ሙስልን ይጠቀማሉ፣ ግን glibc እንዲሁ በማከማቻው ውስጥ አለ።

ምንጭ: opennet.ru

አስተያየት ያክሉ