Linuxi kerni eBPF alamsüsteemi haavatavused

EБPF alamsüsteemis, mis võimaldab käivitada töötlejaid jälgimiseks, alamsüsteemide töö analüüsimiseks ja liikluse juhtimiseks, mis töötavad Linuxi kärnes spetsiaalses virtuaalmasinas JIT-is, on tuvastatud haavatavus (CVE-2021-29154), mis võimaldab kohalikel kasutajatel saavutada oma koodi käivitamist kernitasemel. Probleem ilmneb kuni versioonini 5.11.12 (kaasa arvatud) ja ei ole veel parandatud distributsioonides (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Parandus on saadaval plaastri kujul.

Ründajad, kes tuvastasid haavatavuse, on väitnud, et nad suudavad välja töötada töötava prototüübi eksploitiks 32- ja 64-bitistele x86 süsteemidele, mida saavad kasutada mittepriviligeeritud kasutajad. Samas märgib ettevõte Red Hat, et probleemi oht sõltub eBPF süsteemi kutse kergesti kättesaadavusest kasutajale. Näiteks RHEL-is ja enamikus teistes Linuxi distributsioonides default-konfiguratsioonis saab haavatavust kasutada, kui BPF JIT on sisse lülitatud ja kasutajal on CAP_SYS_ADMIN õigused. Kaitsemeetmena soovitatakse BPF JIT välja lülitada käsuga: echo 0 > \/proc\/sys\/net\/core\/bpf_jit_enable

Probleem on põhjustatud vea tõttu, mis arvutab harude käskude offseti JIT-komplekteerimise protsessis. Eelkõige ei arvestata, et offset võib muutuda optimeerimise etapis. Antud puudujääk võib võimaldada ebanormaalsete masinkoodide genereerimist ja nende täitmist kernitasemel.

Märkimisväärne on see, et see ei ole ainus haavatavus eBPF alamsüsteemis hiljuti. Märtsi lõpus avastati kärnest veel kaks haavatavust (CVE-2020-27170, CVE-2020-27171), mis võimaldavad kasutada eBPF-d, et ületada Spectre-klassist haavatavuste kaitset, mis võimaldavad määrata kärne mälu sisu, luues tingimusi teatud operatsioonide spekuleerimiseks täitmiseks. Spectre'i rünnaku jaoks on vajalik, et privileegitud kood sisaldaks teatud käsurea jada, mis viib spekulatiivse käsutäide käivitamiseni. EБPF-s on leitud mitmeid viise sarnaste käskude genereerimiseks, manipuleerides BPF-programmide käitamiseks edastatavate graafikutega.

CVE-2020-27170 haavatavus tuleneb BPF-i valideerijas olevatest pointerite käsitsemistest, mis põhjustavad spekulatiivseid operatsioone mälupiiridest väljapoole. CVE-2020-27171 haavatavus on seotud täisarvuaritmeetika (integer underflow) veaga pointerite käsitsemisel, mis viib spekulatiivse juurdepääsuni andmetele väljaspool puhver. Need probleemid on juba lahendatud tuumaväljaannetes 5.11.8, 5.10.25, 5.4.107, 4.19.182 ja 4.14.227 ning sisaldusid enamikus Linuxi jaotustes tuumauuendustes. Uurijad on valmistanud ette eksperimenteerimise prototüübi, mis võimaldab mitteprivileegitud kasutajal andmeid tuumamälust välja võtta.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster