Dobësi në nën-sistemin eBPF të kernelit Linux

Në nën-sistemin eBPF, i cili mundëson ekzekutimin e përpunuesve për gjurmim, analizë të funksionimit të nën-sistemeve dhe menaxhim trafiku brenda kernelit Linux në një makinë virtuale të posaçme me JIT, është zbuluar një dobësi (CVE-2021-29154) që i lejon një përdoruesi lokal të arrijë ekzekutimin e kodit të vet në nivelin e kernelit. Problemi prek versionet deri te 5.11.12 (përfshirë) dhe ende nuk është korrigjuar në distribucione (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Rregullimi është i disponueshëm në formën e një patch-i.

Sipas studiuesve që zbuluan dobësinë, atyre u ka dalë të zhvillojnë një prototip funksional exploit-i për sisteme x86 32-bit dhe 64-bit, i cili mund të përdoret nga një përdorues pa privilegje. Nga ana tjetër, Red Hat thekson se rrezikshmëria e problemit varet nga disponueshmëria e thirrjes së sistemit eBPF për përdoruesin. Për shembull, në RHEL dhe në shumicën e distribucioneve të tjera Linux, në konfigurimin e parazgjedhur dobësia mund të shfrytëzohet nëse BPF JIT është i aktivizuar dhe përdoruesi ka të drejtat CAP_SYS_ADMIN. Si masë mbrojtëse e përkohshme rekomandohet çaktivizimi i BPF JIT me komandën: echo 0 > /proc/sys/net/core/bpf_jit_enable

Problemi shkaktohet nga një gabim në llogaritjen e zhvendosjes për komandat e degëzimit gjatë procesit të gjenerimit të kodit makinerik nga JIT-kompiluesi. Konkretisht, gjatë gjenerimit të instruksioneve të degëzimit nuk merret parasysh se zhvendosja mund të ndryshojë pas kalimit të fazës së optimizimit. Kjo mangësi mund të përdoret për të formuar kod makinerik anormal dhe për ta ekzekutuar atë në nivelin e kernelit.

Vlen të theksohet se kjo nuk është dobësia e vetme në nën-sistemin eBPF kohët e fundit. Në fund të marsit në kernel u zbuluan edhe dy dobësi të tjera (CVE-2020-27170, CVE-2020-27171), të cilat krijojnë mundësinë e përdorimit të eBPF për të anashkaluar mbrojtjen ndaj dobësive të klasës Spectre, duke bërë të mundur përcaktimin e përmbajtjes së memories së kernelit si rezultat i krijimit të kushteve për ekzekutim spekulativ të disa operacioneve. Për një sulm Spectre kërkohet prania në kodin e privilegjuar e një sekuence të caktuar komandash që çojnë në ekzekutim spekulativ të instruksioneve. Në eBPF janë gjetur disa mënyra për gjenerimin e instruksioneve të tilla përmes manipulimeve me programet BPF të dërguara për ekzekutim.

Cenueshmëria CVE-2020-27170 shkaktohet nga manipulimet me pointerë në verifikuesin BPF, të cilat nxisin operacione spekulative të qasjes në një zonë jashtë kufijve të buffer-it. Cenueshmëria CVE-2020-27171 lidhet me një gabim në aritmetikën e numrave të plotë (integer underflow) gjatë punës me pointerë, që çon në qasje spekulative te të dhënat jashtë buffer-it. Këto probleme tashmë janë korrigjuar në versionet e kernelit 5.11.8, 5.10.25, 5.4.107, 4.19.182 dhe 4.14.227, si edhe janë përfshirë në përditësimet e kernelit të shumicës së shpërndarjeve Linux. Studiuesit kanë përgatitur një prototip exploit që i lejon një përdoruesi pa privilegje të nxjerrë të dhëna nga memoria e kernelit.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster