USB гаджетінің Linux ядросының ішкі жүйесіндегі осалдық, кодты орындауға мүмкіндік береді.

USB клиенттік құрылғыларын және USB құрылғыларын имитациялайтын бағдарламалық құралды жасау үшін бағдарламалау интерфейсін қамтамасыз ететін Linux ядросының ішкі жүйесі USB гаджетінде ядродан ақпараттың ағып кетуіне, бұзылуға немесе деңгей ядроларындағы ерікті код. Шабуыл rndis, hid, uac2021, uac39685_legacy және uac1 сияқты USB Gadget API негізінде іске асырылған әртүрлі құрылғы сыныптарын манипуляциялау арқылы артықшылықсыз жергілікті пайдаланушымен жүзеге асырылады.

Мәселе жақында жарияланған 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

пікір қалдыру