Linux ядросының eBPF ішкі жүйесіндегі осалдықтар

eBPF ішкі жүйесінде осалдық (CVE-2021-29154) анықталды, ол іздеуге, ішкі жүйелердің жұмысын талдауға және трафикті басқаруға арналған өңдеушілерді іске қосуға мүмкіндік береді, Linux ядросының ішінде JIT бар арнайы виртуалды машинада орындалады, бұл жергілікті пайдаланушы өз кодының ядро ​​деңгейінде орындалуына қол жеткізу үшін. Мәселе 5.11.12 (қоса алғанда) шығарылымына дейін пайда болады және дистрибутивтерде (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch) әлі шешілмеген. Түзету патч ретінде қол жетімді.

Осалдықты анықтаған зерттеушілердің айтуынша, олар 32- және 64-биттік x86 жүйелеріне арналған эксплуатацияның жұмыс прототипін жасай алды, оны артықшылықсыз пайдаланушы пайдалана алады. Дегенмен, Red Hat мәселенің ауырлығы eBPF жүйелік қоңырауының пайдаланушыға қолжетімділігіне байланысты екенін атап өтеді. Мысалы, әдепкі конфигурациядағы RHEL және басқа Linux дистрибутивтерінің көпшілігінде осалдықты BPF JIT қосулы болса және пайдаланушыда CAP_SYS_ADMIN құқықтары болса, пайдалануға болады. Шешім ретінде BPF JIT пәрменін өшіру ұсынылады: echo 0 > /proc/sys/net/core/bpf_jit_enable

Мәселе JIT компиляторының машина кодын генерациялау процесі кезінде тармақтық нұсқаулар үшін ығысуды есептеудегі қатеден туындады. Атап айтқанда, салалық нұсқауларды генерациялау кезінде оңтайландыру кезеңінен өткеннен кейін ығысудың өзгеруі мүмкін екенін ескермейді. Бұл кемшілік аномальды машина кодын жасау және оны ядро ​​деңгейінде орындау үшін пайдаланылуы мүмкін.

Бір қызығы, бұл соңғы уақытта eBPF ішкі жүйесіндегі жалғыз осалдық емес. Наурыз айының соңында ядрода (CVE-2020-27170, CVE-2020-27171) тағы екі осалдық анықталды, бұл ядро ​​жадының мазмұнын анықтауға мүмкіндік беретін Spectre класының осалдықтарынан қорғауды айналып өту үшін eBPF пайдалануға мүмкіндік береді. белгілі бір операцияларды алыпсатарлық орындау үшін жағдай жасау нәтижесінде. Spectre шабуылы нұсқаулардың алыпсатарлық орындалуына әкелетін артықшылықты кодта белгілі бір командалар тізбегінің болуын талап етеді. eBPF-де орындауға жіберілген BPF бағдарламаларымен манипуляциялар арқылы мұндай нұсқауларды жасаудың бірнеше жолы табылды.

CVE-2020-27170 осалдығы алыпсатарлық операциялардың буфер шекараларынан тыс аумаққа кіруіне себеп болатын BPF тексерушісіндегі көрсеткіш манипуляциясынан туындайды. CVE-2020-27171 осалдығы буферден тыс деректерге алыпсатарлық қатынасқа әкелетін көрсеткіштермен жұмыс істеу кезіндегі бүтін санның азаю қатесіне байланысты. Бұл мәселелер 5.11.8, 5.10.25, 5.4.107, 4.19.182 және 4.14.227 ядролық шығарылымдарында шешілген, сонымен қатар көптеген Linux дистрибутивтері үшін ядро ​​жаңартуларына енгізілген. Зерттеушілер артықшылығы жоқ пайдаланушыға ядро ​​жадынан деректерді шығаруға мүмкіндік беретін эксплойт прототипін дайындады.

Ақпарат көзі: opennet.ru

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