Kwesbaarhede in die eBPF-substelsel van die Linux-kern

'n Kwesbaarheid (CVE-2021-29154) is in die eBPF-substelsel geïdentifiseer, wat jou toelaat om hanteerders te laat loop vir die opsporing, ontleding van die werking van substelsels en die bestuur van verkeer, uitgevoer binne die Linux-kern in 'n spesiale virtuele masjien met JIT, wat 'n plaaslike gebruiker om uitvoering van hul kode op kernvlak te bereik. Die probleem verskyn tot en met die vrystelling van 5.11.12 (insluitend) en is nog nie reggestel in verspreidings (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Die oplossing is beskikbaar as 'n pleister.

Volgens die navorsers wat die kwesbaarheid geïdentifiseer het, kon hulle 'n werkende prototipe van die uitbuiting vir 32- en 64-bis x86-stelsels ontwikkel, wat deur 'n onbevoorregte gebruiker gebruik kan word. Red Hat merk egter op dat die erns van die probleem daarvan afhang of die eBPF-stelseloproep vir die gebruiker toeganklik is. Byvoorbeeld, op RHEL en die meeste ander Linux-verspreidings in die verstekkonfigurasie, kan die kwesbaarheid uitgebuit word as BPF JIT geaktiveer is en die gebruiker CAP_SYS_ADMIN-regte het. As 'n oplossing word dit aanbeveel om BPF JIT te deaktiveer met die opdrag: echo 0 > /proc/sys/net/core/bpf_jit_enable

Die probleem word veroorsaak deur 'n fout in die berekening van die afset vir takinstruksies tydens die masjienkodegenereringsproses van die JIT-samesteller. In die besonder, wanneer takinstruksies gegenereer word, neem dit nie in ag dat die afset kan verander nadat dit deur die optimaliseringstadium gegaan het nie. Hierdie fout kan gebruik word om abnormale masjienkode te genereer en dit op kernvlak uit te voer.

Dit is opmerklik dat dit nie onlangs die enigste kwesbaarheid in die eBPF-substelsel is nie. Aan die einde van Maart is nog twee kwesbaarhede in die kern geïdentifiseer (CVE-2020-27170, CVE-2020-27171), wat dit moontlik maak om eBPF te gebruik om beskerming teen Spectre-klas kwesbaarhede te omseil, wat dit moontlik maak om die inhoud van kerngeheue te bepaal as gevolg van die skep van voorwaardes vir die spekulatiewe uitvoering van sekere operasies. Die Spectre-aanval vereis die teenwoordigheid van 'n sekere volgorde van opdragte in bevoorregte kode wat lei tot spekulatiewe uitvoering van instruksies. In eBPF is verskeie maniere gevind om sulke instruksies te genereer deur manipulasies met BPF-programme wat vir uitvoering gestuur word.

Die CVE-2020-27170-kwesbaarheid word veroorsaak deur wysermanipulasie in die BPF-verifieerder wat spekulatiewe bedrywighede veroorsaak om toegang tot 'n gebied buite die buffergrense te verkry. Die kwesbaarheid CVE-2020-27171 is te wyte aan 'n heelgetal ondervloeifout wanneer daar met wysers gewerk word, wat lei tot spekulatiewe toegang tot data buite die buffer. Hierdie probleme is reeds reggestel in kernvrystellings 5.11.8, 5.10.25, 5.4.107, 4.19.182 en 4.14.227, en is ook ingesluit by kernopdaterings vir die meeste Linux-verspreidings. Navorsers het 'n prototipe-uitbuiting voorberei wat 'n onbevoorregte gebruiker toelaat om data uit kerngeheue te onttrek.

Bron: opennet.ru

Voeg 'n opmerking