Nylig brøt nyheten det en sårbarhet ble identifisert (CVE-2021-29154) i delsystemet eBPF, som sTillater kjøring av sporing, undersystemanalyse og trafikkontrollkontrollere kjører inne i Linux-kjernen i en spesiell JIT virtuell maskin som lar en lokal bruker kjøre koden din på kjernenivå.
Ifølge forskerne som identifiserte sårbarheten, var de i stand til å utvikle en fungerende prototype av en utnyttelse for 86-biters og 32-biters x64-systemer som kan brukes av en uprivilegert bruker.
Samtidig Red Hat bemerker at alvorlighetsgraden av problemet avhenger av tilgjengeligheten av eBPF-systemanropet. for brukeren. For eksempel på RHEL og de fleste andre Linux-distribusjoner som standard, kan sårbarheten utnyttes når BPF JIT er aktivert og brukeren har CAP_SYS_ADMIN rettigheter.
Det er oppdaget et problem i Linux-kjernen som de kan misbruke
ikke-privilegerte lokale brukere for å eskalere privilegier.Problemet er hvordan BPF JIT-kompilatorene beregner for noen arkitekturer
Grenforskyvning når du genererer maskinkode. Dette kan misbrukes
for å lage uregelmessig maskinkode og kjøre den i kjernemodus,
der kontrollflyten blir kapret for å utføre usikker kode.
Og det er at de detaljerer det problemet skyldes en feil som genereres ved beregning av forskyvning av forgreningsinstruksjonene under JIT-kompilatoren som genererer maskinkoden.
Spesielt nevnes det at når man genererer greninstruksjonene, blir det ikke tatt hensyn til at forskyvningen kan endres etter å ha gått gjennom optimaliseringsfasen, så denne feilen kan brukes til å generere avvikende maskinkode og utføre den på nivåkjernen.
Det skal bemerkes at Dette er ikke den eneste sårbarheten i eBPF-delsystemet som har blitt kjent de siste årene, siden i slutten av mars ble ytterligere to sårbarheter identifisert i kjernen (CVE-2020-27170, CVE-2020-27171), som gir muligheten til å bruke eBPF for å omgå beskyttelsen mot Specter-klassen sårbarheter, som gjør det mulig å bestemme innholdet i kjerneminnet og som resulterer i at det skapes betingelser for den spekulative utførelsen av visse operasjoner.
Spectre-angrepet krever tilstedeværelse av en spesifikk sekvens av kommandoer i den privilegerte koden, noe som fører til spekulativ gjennomføring av instruksjoner. I eBPF er det funnet flere måter å generere slike instruksjoner ved hjelp av manipulasjoner med BPF-programmer som overføres for utførelse.
- CVE-2020-27170-sårbarheten er forårsaket av markørmanipulasjoner i BPF-kontrolløren, noe som fører til at spekulative operasjoner får tilgang til et område utenfor bufferen.
- CVE-2020-27171-sikkerhetsproblemet er relatert til et heltallsunderstrømningsfeil når du arbeider med pekere, noe som fører til spekulativ tilgang til data utenfor bufferen.
Disse problemene er allerede løst i kjerneversjoner 5.11.8, 5.10.25, 5.4.107, 4.19.182 og 4.14.227, og har blitt inkludert i kjerneoppdateringer for de fleste Linux-distribusjoner. Forskere har utarbeidet en utnyttelsesprototype som gjør det mulig for en uprivilegert bruker å hente data fra kjerneminnet.
Angående en av løsningene som foreslått i Red Hat er:
Skadebegrensning:
Dette problemet påvirker ikke de fleste systemer som standard. En administrator må ha aktivert BPF JIT.
Det kan deaktiveres umiddelbart med kommandoen:
# echo 0 > /proc/sys/net/core/bpf_jit_enableEller det kan deaktiveres for alle påfølgende systemstarter ved å sette en verdi i /etc/sysctl.d/44-bpf -jit-disable
## start file ## net.core.bpf_jit_enable=0</em> end file ##
Endelig hvis du er interessert i å vite mer om det om dette sårbarheten, kan du sjekke detaljene i følgende lenke.
Det er verdt å nevne at problemet vedvarer til versjon 5.11.12 (inkludert) og ennå ikke er løst i de fleste distribusjoner, selv om rettelsen allerede er på plass. tilgjengelig som en lapp.