A Linux kernel eBPF alrendszerének sebezhetőségei

Az eBPF alrendszerben, amely lehetővé teszi a nyomkövetési, elemzési és forgalomkezelési feladatokhoz szükséges kezelők indítását a Linux kernelben, egy sebezhetőséget (CVE-2021-29154) azonosítottak, amely lehetővé teszi egy helyi felhasználó számára, hogy a kernel szintjén futtasson saját kódot. A probléma a 5.11.12-es verzióig terjed, és még nem javították a disztribúciókban (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). A javítás patch formájában érhető el.

A sebezhetőséget felfedező kutatók szerint sikerült megalkotniuk egy működő prototípust a 32- és 64-bites x86 rendszerekhez, amelyet nem privilegizált felhasználók is alkalmazhatnak. Ezen kívül a Red Hat cég megjegyzi, hogy a probléma veszélyessége a felhasználó számára hozzáférhető eBPF rendszerhívás függvénye. Például a RHEL és a legtöbb más Linux disztribúció esetében az alapértelmezett konfigurációban a sebezhetőség kihasználható a BPF JIT engedélyezésével és a felhasználó CAP_SYS_ADMIN jogainak meglétével. Mint védelmi intézkedést ajánlott a BPF JIT letiltása a következő parancs használatával: echo 0 > /proc/sys/net/core/bpf_jit_enable

A probléma a gépi kód JIT-készítőkkel végzett ugrásparancsok elmozdulásának számítási hibájából adódik. Különösen az ugrásparancsok generálásakor nem veszik figyelembe, hogy az elmozdulás megváltozhat az optimalizálási fázis után. Az említett hiányosság felhasználható abnormális gépi kód létrehozására és a kernel szintjén történő végrehajtására.

Figyelemre méltó, hogy ez nem az egyetlen sebezhetőség az eBPF alrendszerében az utóbbi időszakban. Március végén a kernelben további két sebezhetőséget (CVE-2020-27170, CVE-2020-27171) azonosítottak, amelyek lehetővé teszik az eBPF számára a Spectre-féle sebezhetőségek védelmi körének megkerülését, lehetővé téve a kernel memóriájának tartalmának meghatározását bizonyos műveletek spekulatív végrehajtásának elősegítésével. A Spectre-támadáshoz priviligizált kódban szükséges egy meghatározott parancsokból álló sorrend, amely spekulatív végrehajtásra vezet. Az eBPF-ben több módot találtak, amelyek segítségével ilyen parancsok generálhatók a végrehajtásra szánt BPF-programok manipulálásával.

A CVE-2020-27170 vulnerability is caused by pointer manipulations in the BPF verifier that trigger speculative operations accessing memory beyond buffer boundaries. The CVE-2020-27171 vulnerability is related to an integer arithmetic error (integer underflow) when working with pointers, leading to speculative access to data outside the buffer. These issues have already been addressed in kernel releases 5.11.8, 5.10.25, 5.4.107, 4.19.182, and 4.14.227, and have been included in the kernel updates of most Linux distributions. Researchers have prepared a prototype exploit that allows an unprivileged user to extract data from kernel memory.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster