USB гаджетінде ядроның ішкі жүйесі LinuxUSB Gadget API интерфейсінде осалдық (CVE-2021-39685) анықталды, ол клиенттік USB құрылғыларын жасауға және USB құрылғыларын модельдеуге арналған бағдарламалық интерфейсті қамтамасыз етеді. Бұл осалдық ядро ақпаратының ағып кетуіне, істен шығуына немесе ядро деңгейінде кодтың кездейсоқ орындалуына әкелуі мүмкін. Шабуылды артықшылығы жоқ жергілікті пайдаланушы USB Gadget API интерфейсін пайдаланып жүзеге асырылған әртүрлі құрылғы кластарын, мысалы, rdis, hid, uac1, uac1_legacy және uac2, манипуляциялау арқылы жүзеге асырады.
Мәселе жақында жарияланған ядро жаңартуларында шешілді. Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 және 4.4.295. Мәселе дистрибутивтерде шешілмеген күйінде қалып отыр (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). Осалдықты көрсету үшін эксплойттың прототипі дайындалды.
Мәселе rndis, hid, uac1, uac1_legacy және uac2 гаджет драйверлерінің деректерді тасымалдау сұрау өңдеушілеріндегі буфердің толып кетуінен туындады. Осы осалдықты пайдалану арқылы артықшылығы жоқ шабуылдаушы әрқашан 4096 байтқа (USB_COMP_EP0_BUFSIZ) бөлінген статикалық буфер өлшемінен асатын wLength өріс мәні бар арнайы басқару сұрауын жіберу арқылы ядро жадына қол жеткізе алады. Бұл шабуыл артықшылығы жоқ пайдаланушы-кеңістік процесіне ядро жадына 65 КБ дейін деректерді оқуға немесе жазуға мүмкіндік береді.
Ақпарат көзі: opennet.ru
