Kwetsbaarheden in het eBPF-subsysteem die uitvoering van code op kernelniveau mogelijk maken Linux

Er zijn twee nieuwe kwetsbaarheden ontdekt in het eBPF-subsysteem die het mogelijk maken om handlers binnen de kernel uit te voeren. Linux in een speciale virtuele machine met een JIT-compiler. Beide kwetsbaarheden maken het mogelijk om code uit te voeren met kernelrechten, buiten de geïsoleerde eBPF-virtuele machine. Informatie over de problemen werd gepubliceerd door het Zero Day Initiative-team, dat de Pwn2Own-competitie organiseert, waarin dit jaar drie aanvallen werden gedemonstreerd. Ubuntu Linux, waarbij gebruik werd gemaakt van voorheen onbekende kwetsbaarheden (of de kwetsbaarheden in eBPF verband houden met deze aanvallen is niet bekend).

  • CVE-2021-3490 - Het beveiligingslek wordt veroorzaakt door een gebrek aan 32-bits controle op buitengrenzen bij het uitvoeren van bitsgewijze AND-, OR- en XOR-bewerkingen in eBPF ALU32. Een aanvaller kan van deze fout profiteren door gegevens buiten de grenzen van de toegewezen buffer te lezen en te schrijven. Het probleem met XOR-bewerkingen doet zich voor vanaf kernelversie 5.7-rc1, en AND en OR - vanaf 5.10-rc1.
  • CVE-2021-3489 - Het beveiligingslek wordt veroorzaakt door een fout in de implementatie van de ringbuffer en is te wijten aan het feit dat de functie bpf_ringbuf_reserve niet de mogelijkheid heeft gecontroleerd dat de grootte van het toegewezen geheugengebied kleiner zou kunnen zijn dan de werkelijke grootte van de ringbuf. Het probleem doet zich voor sinds release 5.8-rc1.

De status van beveiligingspatches in distributies kan op deze pagina's worden gevolgd: Ubuntu, Debian(RHEL, Fedora, SUSE, Arch). Er zijn ook patches beschikbaar (CVE-2021-3489, CVE-2021-3490). De kwetsbaarheid is alleen te misbruiken als de gebruiker toegang heeft tot de eBPF-systeemoproep. In de standaardconfiguratie van RHEL is bijvoorbeeld CAP_SYS_ADMIN-privileges vereist voor de exploitatie van de kwetsbaarheid.

Een andere kwetsbaarheid in de kernel verdient aparte aandacht. Linux — CVE-2021-32606, waarmee een lokale gebruiker zijn privileges kan verhogen naar root. Het probleem manifesteert zich vanaf het begin in de kernel. Linux 5.11 en wordt veroorzaakt door een raceconditie in de implementatie van het CAN ISOTP-protocol, waardoor socketbindingsparameters kunnen worden gewijzigd doordat er geen juiste vergrendelingen worden ingesteld in de functie isotp_setsockopt() bij het verwerken van de CAN_ISOTP_SF_BROADCAST-vlag.

Nadat de ISOTP-socket is gesloten, blijft de binding met de ontvangende socket van kracht, die de structuren kan blijven gebruiken die aan de socket zijn gekoppeld nadat het bijbehorende geheugen is vrijgegeven (use-after-free vanwege de aanroep van isotp_rcv() toegang krijgen tot een reeds vrijgemaakte isotp_sock-structuur). Door gegevensmanipulatie kunt u de verwijzing naar de functie sk_error_report() overschrijven en uw code op kernelniveau uitvoeren.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster