USB гаджетинин Linux ядросунун подсистемасындагы аялуу, кодду аткарууга мүмкүндүк берет

USB гаджети, Linux ядросунун подсистемасы, USB кардар түзмөктөрүн жана USB түзүлүштөрүн симуляциялоочу программалык камсыздоону түзүү үчүн программалоо интерфейсин камсыз кылат, ядродон маалыматтын агып кетишине, бузулушуна же аткарылышына алып келиши мүмкүн болгон аялуу жерине (CVE-2021-39685) ээ. денгээлдеги өзөктөрдөгү ыктыярдуу код. Кол салуу rndis, hid, uac1, uac1_legacy жана uac2 сыяктуу 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 КБга чейинки маалыматтарды окуп же жаза алат.

Source: opennet.ru

Комментарий кошуу