Haavatavused Linuxi kerneli eBPF alamsüsteemis

eBPF-i alamsüsteemis tuvastati haavatavus (CVE-2021-29154), mis võimaldab käivitada töötlejaid alamsüsteemide töö jälgimiseks, analüüsimiseks ja liikluse haldamiseks, mis käivitatakse Linuxi tuuma sees spetsiaalses JIT-iga virtuaalmasinas, mis võimaldab kohalik kasutaja, et saavutada oma koodi täitmine kerneli tasemel. Probleem ilmneb kuni versiooni 5.11.12 väljalaskeni (kaasa arvatud) ja distributsioonides (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch) pole seda veel parandatud. Parandus on saadaval plaastrina.

Haavatavuse tuvastanud teadlaste sõnul suutsid nad 32- ja 64-bitiste x86 süsteemide jaoks välja töötada toimiva prototüübi, mida saavad kasutada privilegeerimata kasutajad. Red Hat märgib aga, et probleemi tõsidus sõltub sellest, kas eBPF-i süsteemikõne on kasutajale ligipääsetav. Näiteks RHEL-i ja enamiku teiste vaikekonfiguratsiooniga Linuxi distributsioonide puhul saab haavatavust ära kasutada, kui BPF JIT on lubatud ja kasutajal on CAP_SYS_ADMIN õigused. Lahendusena on soovitatav keelata BPF JIT, kasutades käsku: echo 0 > /proc/sys/net/core/bpf_jit_enable

Probleemi põhjuseks on viga harukäskude nihke arvutamisel JIT-kompilaatori masinkoodi genereerimise protsessis. Eelkõige ei võeta harukäskude genereerimisel arvesse, et nihe võib pärast optimeerimisetapi läbimist muutuda. Seda viga saab kasutada anomaalse masinkoodi genereerimiseks ja selle käivitamiseks kerneli tasemel.

Tähelepanuväärne on, et see pole viimasel ajal ainus eBPF-i alamsüsteemi haavatavus. Märtsi lõpus tuvastati tuumas veel kaks turvaauku (CVE-2020-27170, CVE-2020-27171), mis võimaldavad eBPF-i abil mööda minna kaitsest Spectre klassi haavatavuste eest, mis võimaldavad määrata tuuma mälu sisu. teatud toimingute spekulatiivseks sooritamiseks tingimuste loomise tulemusena . Spectre rünnak nõuab privilegeeritud koodis teatud käskude jada olemasolu, mis viib käskude spekulatiivse täitmiseni. eBPF-is on leitud mitmeid viise selliste juhiste genereerimiseks, manipuleerides täitmiseks edastatud BPF-programmidega.

Haavatavuse CVE-2020-27170 põhjustab BPF-i kontrollija kursoriga manipuleerimine, mis põhjustab spekulatiivseid toiminguid puhvri piiridest väljapoole jäävale alale juurdepääsuks. Haavatavus CVE-2020-27171 on tingitud täisarvu alavoolu veast osutitega töötamisel, mis viib spekulatiivse juurdepääsuni puhvrivälistele andmetele. Need probleemid on juba parandatud kerneli versioonides 5.11.8, 5.10.25, 5.4.107, 4.19.182 ja 4.14.227 ning need on lisatud ka enamiku Linuxi distributsioonide tuumavärskendustesse. Teadlased on ette valmistanud prototüübi kasutamise, mis võimaldab privilegeerimata kasutajal kerneli mälust andmeid eraldada.

Allikas: opennet.ru

Lisa kommentaar