ืคื’ื™ืขื•ืช ืงืจื™ื˜ื™ืช ื‘ื™ื™ืฉื•ื ืคื•ื ืงืฆื™ื™ืช memcpy ืขื‘ื•ืจ ARMv7 ืž-Glibc

ื—ื•ืงืจื™ ืื‘ื˜ื—ื” ืฉืœ ืกื™ืกืงื• ื—ึธืฉื‚ื•ึผืฃ ืืช ื”ืคืจื˜ื™ื ืคื’ื™ืขื•ืช (CVE-2020-6096) ื‘ื™ื™ืฉื•ื ื”ืคื•ื ืงืฆื™ื” memcpy() ืฉืกื•ืคืงื” ืขืœ ื™ื“ื™ Glibc ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช ARMv32 ืฉืœ 7 ืกื™ื‘ื™ื•ืช. ื”ื‘ืขื™ื” ื ื’ืจืžืช ืžื˜ื™ืคื•ืœ ืฉื’ื•ื™ ื‘ืขืจื›ื™ื ืฉืœื™ืœื™ื™ื ืฉืœ ื”ืคืจืžื˜ืจ ืฉืงื•ื‘ืข ืืช ื’ื•ื“ืœ ื”ืฉื˜ื— ื”ืžื•ืขืชืง, ืขืงื‘ ืฉื™ืžื•ืฉ ื‘ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช assembly ืฉืžืชืคืขืœื•ืช ืžืกืคืจื™ื ืฉืœืžื™ื ืฉืœ 32 ืกื™ื‘ื™ื•ืช ื—ืชื•ืžื™ื. ืงืจื™ืืช memcpy() ื‘ืžืขืจื›ื•ืช ARMv7 ืขื ื’ื•ื“ืœ ืฉืœื™ืœื™ ืžื‘ื™ืื” ืœื”ืฉื•ื•ืื” ืฉื’ื•ื™ื” ืฉืœ ืขืจื›ื™ื ื•ื›ืชื™ื‘ื” ื‘ืื–ื•ืจ ืžื—ื•ืฅ ืœื’ื‘ื•ืœื•ืช ื”ืžืื’ืจ ืฉืฆื•ื™ืŸ.

ื ื™ืชืŸ ืœื ืฆืœ ืืช ื”ืคื’ื™ืขื•ืช ืœื‘ื™ืฆื•ืข ืงื•ื“ ื‘ืžืฆื‘ ืฉื‘ื• ื”ืชื•ืงืฃ ื™ื›ื•ืœ ืœืืจื’ืŸ ืืช ื”ื™ื•ื•ืฆืจื•ืช ืขืจืš ืฉืœื™ืœื™ ืฉืœ ื”ืžืฉืชื ื” ืฉื“ืจื›ื• ืžื•ืขื‘ืจ ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ื”ืžื•ืขืชืงื™ื (ืœื“ื•ื’ืžื”, ื”ื•ื ื™ื”ืคื•ืš ืœืฉืœื™ืœื™ ื‘ืขืช ื”ืขื‘ืจืช ื™ื•ืชืจ ืž-2 GB ืฉืœ ื ืชื•ื ื™ื, ืื‘ืœ ื‘ืžื”ืœืš ื”ื”ืชืงืคื”, ื›ื“ื™ ืœื—ืจื•ื’ ืžืžื’ื‘ืœื•ืช ื”ืžืื’ืจ, ืขืœื™ืš ืœื”ืขื‘ื™ืจ ืœืคื—ื•ืช 4GB). ื”ืคื•ื ืงืฆื™ื” memcpy() ื ืžืฆืืช ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ื™ื™ืฉื•ืžื™ื, ื•ืžืขื‘ื“ื™ ARMv7 ื ืคื•ืฆื™ื ื‘ืžืขืจื›ื•ืช ืจื›ื‘, ื ื™ื™ื“ื™ื, ืชืขืฉื™ื™ื”, ืฆืจื›ื ื™ื, ืชืงืฉื•ืจืช ื•ื”ืชืงื ื™ื ืžืฉื•ื‘ืฆื™ื, ืฉืขืœื•ืœื™ื ืœื”ื™ื•ืช ื ืชื•ื ื™ื ืœื”ืชืงืคื•ืช ื‘ืืžืฆืขื•ืช Bluetooth, HD Radio/DAB, USB, CAN bus, Wi-Fi Fi ื•ืžืงื•ืจื•ืช ื ืชื•ื ื™ื ื—ื™ืฆื•ื ื™ื™ื ืื—ืจื™ื (ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœืชืงื•ืฃ ืฉื™ืจื•ืชื™ื ื•ื™ื™ืฉื•ืžื™ื ื”ื ื’ื™ืฉื™ื ื“ืจืš ื”ืจืฉืช ื”ืžืงื‘ืœื™ื ื ืชื•ื ื™ ืงืœื˜ ืœืœื ื”ื’ื‘ืœื•ืช ื’ื•ื“ืœ).

ื“ื•ื’ืžื” ืœื›ืš ื”ื™ื ื™ืฆื™ืจืช ื ื™ืฆื•ืœ ืคื•ืขืœ ืœืชืงื•ืฃ ืฉืจืช HTTP ื”ืžื•ื‘ื ื” ื‘ืžืขืจื›ื•ืช ืžื™ื“ืข ืœืจื›ื‘, ื”ื ื’ื™ืฉ ื“ืจืš ืจืฉืช ื”-Wi-Fi ืฉืœ ื”ืจื›ื‘. ืชื•ืงืฃ ื—ื™ืฆื•ื ื™ ื™ื›ื•ืœ ืœื ืฆืœ ืคื’ื™ืขื•ืช memcpy ื‘ืฉืจืช ื–ื” ืขืœ ื™ื“ื™ ืฉืœื™ื—ืช ื‘ืงืฉืช GET ื’ื“ื•ืœื” ืžืื•ื“ ื•ืœืงื‘ืœ ื’ื™ืฉืช ืฉื•ืจืฉ ืœืžืขืจื›ืช.

ืคื’ื™ืขื•ืช ืงืจื™ื˜ื™ืช ื‘ื™ื™ืฉื•ื ืคื•ื ืงืฆื™ื™ืช memcpy ืขื‘ื•ืจ ARMv7 ืž-Glibc

ื‘ืžืขืจื›ื•ืช 32 ืกื™ื‘ื™ื•ืช x86, ื”ื‘ืขื™ื” ืœื ืžื•ืคื™ืขื”, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื™ืฉื•ื memcpy ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื” ื–ื• ืžืคืจืฉ ื ื›ื•ืŸ ืืช ืžืฉืชื ื” ื”ื’ื•ื“ืœ ื›ืขืจืš ืžืกืคืจ ืฉืœื ืœืœื ืกื™ืžืŸ ืžืกื•ื’ size_t (ื‘ืฉืคืช assembly ื™ื™ืฉื•ื ืขื‘ื•ืจ ARMv7 ื”ื•ื ืžื˜ื•ืคืœ ื›ืžืกืคืจ ืฉืœื ื‘ืกื™ืžืŸ ื‘ืžืงื•ื size_t). ื”ืชื™ืงื•ืŸ ื–ืžื™ืŸ ื›ืจื’ืข ื‘ืฉื ืชื™ืงื•ืŸ, ืฉื™ื™ื›ืœืœ ื‘ืขื“ื›ื•ืŸ ืื•ื’ื•ืกื˜ Glibc 2.32.
ื”ืชื™ืงื•ืŸ ืžืกืชื›ื ื‘ื”ื—ืœืคืช ื”ืฉื™ืžื•ืฉ ื‘ื”ื•ืจืื•ืช ื”ืจื›ื‘ื” ื”ืคื•ืขืœื•ืช ืขืœ ืื•ืคืจื ื“ื™ื ื—ืชื•ืžื™ื (bge ื•-blt) ืขื ืขืžื™ืชื™ื ืœื ื—ืชื•ืžื™ื (blo ื•-bhs).

ื”ื‘ืขื™ื” ืขื“ื™ื™ืŸ ืœื ื ืคืชืจื” ื“ื‘ื™ืืŸ 9 ื•-10 (ืœื ื ืจืื” ื‘ื“ื‘ื™ืืŸ 8), ืคื“ื•ืจื”, ืื•ื‘ื•ื ื˜ื•, OpenEmbedded, Tizen (ื‘ืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ glibc). ืจื”ืœ ะธ SUSE ื”ื‘ืขื™ื” ืื™ื ื” ืžื•ืฉืคืขืช ืžื›ื™ื•ื•ืŸ ืฉื”ื ืื™ื ื ืชื•ืžื›ื™ื ื‘ืžืขืจื›ื•ืช ARMv32 ืฉืœ 7 ืกื™ื‘ื™ื•ืช. ืื ื“ืจื•ืื™ื“ ืœื ืžื•ืฉืคืข ืžื”ืคื’ื™ืขื•ืช ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืžืฉืชืžืฉืช ื‘ื™ื™ืฉื•ื libc (Bionic) ืžืฉืœื”. IN OpenWRT ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืจื•ื‘ ื”ื‘ื ื™ื™ื ื™ื ืžืฉืชืžืฉื™ื ื‘-Musl, ืืš glibc ื–ืžื™ืŸ ื’ื ื‘ืžืื’ืจ.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”