Sårbarheter i eBPF-delarna av Linux-kärnan

I eBPF-delarna, som möjliggör körning av handlingar för spårning, analys av subsystem och trafikhantering, utförda inuti Linux-kärnan i en speciell virtuell maskin med JIT, har en sårbarhet (CVE-2021-29154) upptäckts. Den tillåter en lokal användare att åstadkomma körning av sin kod på kärnnivå. Problemet manifesterar sig fram till version 5.11.12 (inklusive) och har ännu inte åtgärdats i distributioner (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). En patch är tillgänglig.

Enligt forskarna som identifierade sårbarheten har de lyckats utveckla en fungerande prototyp av ett exploateringsverktyg för 32- och 64-bitars x86-system, som kan användas av en icke-privilegierad användare. Samtidigt påpekar Red Hat att faran med problemet beror på tillgängligheten av systemanropet eBPF för användaren. Till exempel, i RHEL och de flesta andra Linux-distributioner, i standardkonfigurationen, kan sårbarheten utnyttjas om BPF JIT är aktiverat och användaren har CAP_SYS_ADMIN-rättigheter. Som en skyddsåtgärd rekommenderas att stänga av BPF JIT med hjälp av kommandot: echo 0 > /proc/sys/net/core/bpf_jit_enable

Problemet orsakas av ett fel i beräkningen av förskjutningar för grenoperationer vid generering av maskinkod av JIT-kompilatorn. Specifikt, när greninstruktioner genereras beaktas inte att förskjutningen kan ändras efter optimeringssteget. Den angivna bristen kan användas för att forma avvikande maskinkod och köra den på kärnnivå.

Intressant nog är detta inte den enda sårbarheten i eBPF-delarna nyligen. I slutet av mars upptäcktes ytterligare två sårbarheter (CVE-2020-27170, CVE-2020-27171) i kärnan, vilket möjliggjorde användning av eBPF för att kringgå skydd mot Spectre-klassens sårbarheter, vilket tillåter bestämning av kärnminnesinnehåll som ett resultat av att skapa förutsättningar för spekulativ körning av specifika operationer. För att genomföra en Spectre-attack krävs en viss sekvens av kommandon i privilegierad kod som leder till spekulativ körning av instruktioner. Flera sätt att generera sådana instruktioner via manipulation med överlämnade BPF-program har hittats i eBPF.

Sårbarheten CVE-2020-27170 orsakas av förekomsten av pekarmanipulationer i BPF-verifieraren som utlöser spekulativa operationer som får åtkomst till minnesområden utanför buffertens gränser. Sårbarheten CVE-2020-27171 är relaterad till ett fel i heltalsaritmetik (integer underflow) vid arbete med pekare, vilket leder till spekulativ åtkomst till data utanför bufferten. De angivna problemen har redan åtgärdats i kärnversionerna 5.11.8, 5.10.25, 5.4.107, 4.19.182 och 4.14.227, och har också inkluderats i uppdateringarna av kärnan i de flesta Linux-distributioner. Forskare har förberett en prototyp av ett exploit som tillåter en icke-privilegerad användare att extrahera data från kärnminnet.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster