Kwetsbaarheid in het eBPF-subsysteem waardoor code kan worden uitgevoerd op Linux-kernelniveau

Er is een kwetsbaarheid (CVE-2021-4204) geïdentificeerd in het eBPF-subsysteem, waardoor u handlers binnen de Linux-kernel kunt uitvoeren in een speciale virtuele machine met JIT, waardoor een lokale gebruiker zonder rechten toegang tot bevoegdheden kan krijgen en zijn code op het juiste moment kan uitvoeren. Linux-kernelniveau. Het probleem doet zich voor sinds Linux-kernel 5.8 en is nog steeds niet opgelost (inclusief release 5.16). De status van updates die worden gegenereerd om het probleem in distributies op te lossen, kan worden gevolgd op deze pagina's: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Er is aangekondigd dat er een werkende exploit is gemaakt, die naar verwachting op 18 januari zal worden gepubliceerd (gebruikers en ontwikkelaars hebben een week de tijd gekregen om de kwetsbaarheid te verhelpen).

Het beveiligingslek wordt veroorzaakt door onjuiste verificatie van eBPF-programma's die worden verzonden voor uitvoering. Het eBPF-subsysteem biedt hulpfuncties, waarvan het juiste gebruik wordt geverifieerd door een speciale verificateur. Voor sommige functies is het doorgeven van een PTR_TO_MEM-waarde als argument vereist, en om mogelijke bufferoverflows te voorkomen, moet de verificateur de grootte kennen van het geheugen dat aan het argument is gekoppeld. Voor de functies bpf_ringbuf_submit en bpf_ringbuf_discard werden gegevens over de grootte van het overgedragen geheugen niet gerapporteerd aan de verificateur, die zou kunnen worden gebruikt om geheugengebieden buiten de buffergrens te overschrijven bij het uitvoeren van speciaal ontworpen eBPF-code.

Om een ​​aanval uit te voeren moet de gebruiker zijn eigen BPF-programma kunnen laden, en veel recente Linux-distributies blokkeren deze mogelijkheid standaard (inclusief onbevoorrechte toegang tot eBPF is nu standaard verboden in de kernel zelf, te beginnen met release 5.16). De kwetsbaarheid kan bijvoorbeeld worden uitgebuit in de standaardconfiguratie in Ubuntu 20.04 LTS, maar in de omgevingen Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 en Fedora 33 verschijnt deze alleen als de beheerder dit heeft ingesteld de kernel.unprivileged_bpf_disabled parameter op 0. Als tijdelijke oplossing voor het blokkeren van de kwetsbaarheid kunt u de uitvoering van BPF-programma's door niet-bevoorrechte gebruikers voorkomen met het commando “sysctl -w kernel.unprivileged_bpf_disabled=1”.

Bron: opennet.ru

Voeg een reactie