SÄrbarheter i eBPF-subsystemet som möjliggör körning av kod pÄ Linux-kÀrnnivÄ

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

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster