Izpuščeni raziskovalci podjetja Cisco Talos Pred nekaj dnevi ranljivost v jedru Linuxa, ki jo je mogoče izkoristiti za krajo podatkov in služijo tudi kot sredstvo za stopnjevanje privilegijev in ogrožanje sistema.
Ranljivost opisano kot „ranljivost razkritja informacij ki bi lahko napadalcu omogočil, da vidi spomin na sklad jedra. '
CVE-2020-28588 je ranljivost, ki odkrit v napravah ARM proc / pid / syscall 32-bitne naprave, ki poganjajo operacijski sistem. Po navedbah podjetja Cisco Talos je bila težava prvič odkrita v napravi, ki poganja Azure Sphere.
Ranljivost razkritja informacij obstaja v / proc / pid / syscall funkcionalnosti Linux Kernel 5.1 Stable in 5.4.66. Natančneje, ta težava je bila uvedena v v5.1-rc4 (zavezuje 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) in je še vedno prisotna v v5.10-rc4, zato bodo verjetno prizadete vse vmesne različice. Napadalec lahko prebere / proc / pid / syscall, da aktivira to ranljivost, zaradi česar jedro izgubi pomnilniško vsebino.
Proc je poseben psevdo-datotečni sistem na Unixu podobnih operacijskih sistemov, ki za dinamični dostop do procesnih podatkov najdeno v jedru. Predstavlja informacije o procesu in druge sistemske informacije v hierarhični, datotečni obliki.
Na primer, vsebuje podimenike / proc / [pid], od katerih vsak vsebuje datoteke in podimenike, ki izpostavljajo informacije o določenih procesih, berljive z uporabo ustreznega ID-ja procesa. V primeru datoteke "syscall" gre za zakonito datoteko operacijskega sistema Linux, ki vsebuje dnevnike sistemskih klicev, ki jih uporablja jedro.
Za podjetje, lHekerji bi lahko izkoristili napako in dostopali do operacijskega sistema in datoteke syscall s pomočjo sistema, ki se uporablja za interakcijo med podatkovnimi strukturami jedra, Proc. Vnos syscall procfs bi lahko izkoristili, če hekerji izdajo ukaze za generiranje 24 bajtov neinicializiranega pomnilnika kopice, kar vodi do obvoda naključne postavitve prostora jedrnega naslova (KASLR).
Če pogledamo to specifično funkcijo, je vse videti v redu, vendar je treba omeniti, da
args
posredovani parameter je prišel izproc_pid_syscall
funkcija in je kot taka dejansko tipa__u64 args
. V sistemu ARM definicija funkcije pretvori velikost datotekearg
matrika v štiribajtnih elementih od osmih bajtov (odunsigned long
v ARM je 4 bajtov), kar ima za posledico, da vmemcpy
se kopira v 20 bajtov (plus 4 zaargs[0]
).Podobno za i386, kjer
unsigned long
to je samo 4 bajtiargs
napisanih je prvih 24 bajtov argumenta, preostalih 24 bajtov pa ostane nedotaknjenih.V obeh primerih, če se ozremo nazaj na
proc_pid_syscall
funkcijo.Medtem ko v 32-bitni ARM in i386 v datoteko kopiramo le 24 bajtov
args
matrike, niz oblike na koncu prebere 48 bajtov datotekeargs
matriko, saj je%llx
Format niza je v 32-bitnih in 64-bitnih sistemih osem bajtov. Torej 24 bajtov neinicializiranega pomnilnika kopice na koncu dobi izhod, kar lahko vodi do obvoda KASLR.
Raziskovalci trdijo, da ta napad je "nemogoče zaznati na daljavo v omrežju" ker bere iz zakonite datoteke operacijskega sistema Linux. "Če je heker pravilno uporabljen, bi lahko to uhajanje informacij izkoristil za uspešno izkoriščanje drugih nepokritih ranljivosti Linuxa," pravi Cisco.
V zvezi s tem je Google pred kratkim dejal:
»Napake v pomnilniški varnosti pogosto ogrožajo varnost naprav, zlasti aplikacij in operacijskih sistemov. Na primer, v mobilnem operacijskem sistemu Android, ki ga podpira tudi jedro Linux, Google pravi, da je ugotovil, da je bila več kot polovica varnostnih ranljivosti, odpravljenih leta 2019, posledica napak v pomnilniški varnosti.
Nenazadnje Od leta 5.10 je priporočljivo posodobiti različice jedra Linux 4-rc5.4.66, 5.9.8, XNUMX Ta ranljivost je bila preizkušena in potrjena, da lahko izkoristi naslednje različice jedra Linuxa.
Končno če vas zanima več o tem O objavi si lahko ogledate podrobnosti v naslednja povezava.