Linuxi tuuma eBPF alamsüsteemi haavatavused

eBPF-süsteemis, mis võimaldab käitada töötlejaid jälgimiseks, alamsüsteemide töö analüüsimiseks ja liikluse haldamiseks, mis toimivad Linuxi kernelis spetsiaalses JIT-iga virtuaalmasinas, on tuvastatud haavatavus (CVE-2021-29154), mis võimaldab kohalikel kasutajatel saavutada oma koodi täitmise kernelitasemel. Probleem ilmneb kõikidele versioonidele kuni 5.11.12 (kaasa arvatud) ja ei ole veel parandatud distributsioonides (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Parandus on saadaval patchina.

Uurijate sõnul, kes tuvastasid haavatavuse, õnnestus neil arendada töötav prototüüp eksploitiks 32- ja 64-bitistele x86 süsteemidele, mida saab kasutada õigusteta kasutaja. Samas märgib Red Hat, et probleemi oht sõltub süsteemikõne eBPF kättesaadavusest kasutajale. Näiteks RHEL-is ja enamikus muudest Linuxi distributsioonidest, mille vaikeseaded on sarnased, on haavatavust võimalik ära kasutada, kui BPF JIT on sisse lülitatud ja kasutajal on õigus CAP_SYS_ADMIN. Kaitsemeetmena soovitatakse BPF JIT välja lülitada käsuga: echo 0 > /proc/sys/net/core/bpf_jit_enable

Probleem tuleneb juhiste siirdumise nihke arvutamise veast JIT-kompilaatori masinkoodi genereerimisel. Eelkõige ei arvestata siirdumise muutumist juhiste genereerimisel pärast optimeerimise etappi. Antud puudujääk võib viia ebanormaalse masinkoodi genereerimiseni ja selle täitmiseni tuumasüsteemi tasemel.

On tähelepanuväärne, et see ei ole ainus haavatavus eBPF alamsüsteemis viimase aja jooksul. Märtsi lõpus avastati tuumas veel kaks haavatavust (CVE-2020-27170, CVE-2020-27171), mis annavad võimaluse kasutada eBPF-d, et mööda hiilida Spectre klassi haavatavuste kaitse eest, mis võimaldavad tuvastada tuuma mälu sisu spetsiifiliste toimingute spekuleeriva täitmise tingimuste loomise tulemusena. Spectre rünnaku teostamiseks on vajalik, et privileeritud koodis oleks kindel juhiste järjestus, mis viib juhiste spekuleerivale täitmisele. eBPF-s on leitud mitu võimalust selliste juhiste genereerimiseks, manipuleerides BPF-programmide täitmisele edastatud andmetega.

CVE-2020-27170 haavatavus tuleneb põhirakenduses BPF näitajate manipuleerimisest, mis põhjustavad spekulatiivseid mälukutsujaid väljaspool puhverpiire. CVE-2020-27171 haavatavus on seotud täisarvude aritmeetika veaga (integer underflow) näitajate kasutamisel, mis viib spekulatiivsete andmete kätte saamiseni väljaspool puhvrit. Need probleemid on juba lahendatud tuumaväljaannetes 5.11.8, 5.10.25, 5.4.107, 4.19.182 ja 4.14.227 ning on kaasatud enamikku Linuxi distributiivide tuuma värskendustesse. Uurijad on ette valmistanud prototüübi eksploidiks, mis võimaldab privileegideta kasutajal andmeid tuuma mälust välja võtta.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster