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
