TvÄ nya sÄrbarheter har upptÀckts i eBPF-subsystemet, vilket möjliggör körning av hanterare inom LinuxkÀrnan i en specialiserad virtuell maskin med JIT. BÄda sÄrbarheterna ger möjlighet att köra egen kod med kÀrnrÀttigheter, utanför den isolerade eBPF-virtuella maskinen. Information om problemen publicerades av Zero Day Initiative-teamet, som genomför Pwn2Own-tÀvlingar, dÀr tre attacker pÄ Ubuntu Linux demonstrerades i Är, som anvÀnde tidigare okÀnda sÄrbarheter (det rapporteras inte om sÄrbarheterna i eBPF Àr kopplade till dessa attacker).
- CVE-2021-3490 â sĂ„rbarheten orsakas av bristen pĂ„ grĂ€nskontroll av 32-bitarsvĂ€rden vid utförande av bitoperationer AND, OR och XOR i eBPF ALU32. En angripare kan utnyttja detta fel för att lĂ€sa och skriva data utanför grĂ€nserna för den tilldelade bufferten. Problemet med XOR-operationen upptrĂ€der frĂ„n och med kĂ€rnversion 5.7-rc1, medan AND och OR upptrĂ€der frĂ„n och med version 5.10-rc1.
- CVE-2021-3489 â sĂ„rbarheten orsakas av ett fel i implementeringen av ringbufferten och Ă€r kopplad till att funktionen bpf_ringbuf_reserve inte kontrollerade om den tilldelade minnesstorleken var mindre Ă€n den faktiska storleken pĂ„ ringbuffern. Problemet framtrĂ€der frĂ„n och med version 5.8-rc1.
Statusen för att ÄtgÀrda sÄrbarheterna i distributionerna kan följas pÄ följande sidor: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). à tgÀrder Àr ocksÄ tillgÀngliga i form av patchar (CVE-2021-3489, CVE-2021-3490). Möjligheten att utnyttja problemet beror pÄ tillgÄngen till systemanropet eBPF för anvÀndaren. Till exempel, i standardkonfigurationen i RHEL krÀvs det att anvÀndaren har rÀttigheten CAP_SYS_ADMIN för att utnyttja sÄrbarheten.
En annan sĂ„rbarhet i Linux-kĂ€rnan kan ocksĂ„ nĂ€mnas â CVE-2021-32606, som gör det möjligt för lokala anvĂ€ndare att höja sina privilegier till root-nivĂ„. Problemet upptrĂ€der frĂ„n och med Linux-kĂ€rnan 5.11 och orsakas av ett tĂ€vlingsvillkor i implementeringen av CAN ISOTP-protokollet, vilket ger möjlighet att Ă€ndra socketbindningsparametrar pĂ„ grund av bristen pĂ„ korrekt lĂ„sning i funktionen isotp_setsockopt() vid bearbetning av flaggan CAN_ISOTP_SF_BROADCAST.
Efter stÀngning av ISOTP-socket fortsÀtter bindningen till mottagarens socket att verka, vilket gör att den kan fortsÀtta anvÀnda de strukturer som Àr kopplade till socket efter att det relaterade minnet har frigjorts (use-after-free pÄ grund av anropet till isotp_rcv() med en redan frigjord struktur isotp_sock). Genom manipulation av data kan man Ästadkomma en ÄsidosÀttning av pekaren till funktionen sk_error_report() och köra sin egen kod pÄ kÀrnnivÄ.
KĂ€lla: opennet.ru
