Cisco Talos-forskere afslørede Få dage siden en sårbarhed i Linux-kernen, der kan udnyttes til at stjæle data og også tjene som et middel til at eskalere privilegier og kompromittere systemet.
Sårbarhed beskrives som en "sårbarhed ved offentliggørelse af oplysninger som kunne tillade en angriber at se kernestackhukommelsen."
CVE-2020-28588 er sårbarheden, der opdaget i proc/pid/syscall-funktionalitet af ARM-enheder 32-bit kører operativsystemet. Ifølge Cisco Talos blev problemet først opdaget på en enhed, der kører Azure Sphere.
Der findes en sårbarhed med hensyn til offentliggørelse af oplysninger i /proc/pid/syscall-funktionaliteten i Linux Kernel 5.1 Stable og 5.4.66. Mere specifikt er dette problem blevet introduceret i v5.1-rc4 (commits 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) og er stadig til stede i v5.10-rc4, så alle mellemliggende versioner vil sandsynligvis blive påvirket. En angriber kan læse /proc/pid/syscall for at udløse denne sårbarhed, som får kernen til at lække hukommelsesindhold.
Proc er et specielt pseudo-filsystem på Unix-lignende operativsystemer, der bruges til dynamisk at få adgang til procesdata der er i kernen. Præsenterer information om processer og anden systeminformation i en hierarkisk, fillignende struktur.
For eksempel indeholder den /proc/[pid] undermapper, som hver indeholder filer og undermapper, der afslører information om specifikke processer, som kan læses ved at bruge det tilsvarende proces-id. I tilfælde af "syscall"-filen er det en legitim Linux-operativsystemfil, der indeholder registreringer af systemkaldene, der bruges af kernen.
For virksomheden er detHackere kunne udnytte fejlen og få adgang til operativsystemet og syscall-filen gennem et system, der bruges til at interagere mellem kernedatastrukturer, Proc. Syscall procfs-indgangen kunne udnyttes, hvis hackere udsteder kommandoer til at generere 24 bytes i uinitialiseret heap-hukommelse, hvilket fører til en omgåelse af randomisering af kerneadresserumslayout (KASLR).
Ser man på denne specifikke funktion, ser alt godt ud, men det er værd at bemærke, at
args
parameter bestået kom fraproc_pid_syscall
funktion og er som sådan faktisk af typen__u64 args
. I et ARM-system konverterer funktionsdefinitionen størrelsen afarg
array i fire byte-elementer fra otte bytes (sidenunsigned long
i ARM er de 4 bytes), hvilket resulterer i, at imemcpy
kopieres til 20 bytes (plus 4 forargs[0]
).Tilsvarende for i386, hvor
unsigned long
er kun 4 bytesargs
de første 24 bytes af argumentet skrives, hvilket efterlader de resterende 24 bytes intakte.I begge tilfælde, hvis vi ser tilbage på
proc_pid_syscall
fungere.Mens vi på 32-bit ARM og i386 kun kopierer 24 bytes til
args
array, ender formatstrengen med at læse 48 bytes fraargs
matrix, da%llx
formatstreng er otte bytes på 32-bit og 64-bit systemer. Så 24 bytes uinitialiseret heap-hukommelse ender med at få output, hvilket kan føre til en KASLR-bypass.
Det hævder forskerne dette angreb er "umuligt at opdage eksternt på et netværk" fordi den læser en legitim Linux-operativsystemfil. "Hvis den bruges korrekt, kan en hacker drage fordel af dette informationslæk til med succes at udnytte andre ikke-patchede Linux-sårbarheder," siger Cisco.
I denne forbindelse sagde Google for nylig:
"Hukommelsessikkerhedsfejl truer ofte sikkerheden af enheder, især applikationer og operativsystemer. For eksempel, i Android-mobiloperativsystemet, der også understøttes af Linux-kernen, siger Google, at det fandt ud af, at mere end halvdelen af de sikkerhedssårbarheder, der blev behandlet i 2019, var resultatet af hukommelsessikkerhedsfejl.
Sidst men ikke mindst det anbefales at opgradere Linux-kerneversionerne 5.10-rc4, 5.4.66, 5.9.8, da de Denne sårbarhed er blevet testet og bekræftet for at kunne udnytte følgende Linux-kerneversioner.
Endelig hvis du er interesseret i at vide mere om det om udgivelsen, kan du tjekke detaljerne i følgende link.