Kundizzjoni tar-razza fil-kollettur taż-żibel tal-qalba tal-Linux li tista 'twassal għal eskalazzjoni tal-privileġġ

Jann Horn mit-tim Google Project Zero, li darba identifika l-vulnerabbiltajiet Spectre u Meltdown, ippubblika teknika għall-isfruttament ta 'vulnerabbiltà (CVE-2021-4083) fil-kollettur taż-żibel tal-qalba tal-Linux. Il-vulnerabbiltà hija dovuta għal kundizzjoni ta 'razza meta tnaddaf id-deskritturi tal-fajls fuq sockets unix u potenzjalment tippermetti utent lokali mhux privileġġjat biex jesegwixxi l-kodiċi tiegħu fil-livell tal-kernel.

Il-problema hija interessanti minħabba li t-tieqa taż-żmien li matulha sseħħ il-kundizzjoni tat-tellieqa kienet stmata li kienet żgħira wisq biex toħloq sfruttamenti reali, iżda l-awtur tal-istudju wera li anke vulnerabbiltajiet inizjalment xettiċi bħal dawn jistgħu jsiru s-sors ta’ attakki reali jekk il-kreatur tal-isfruttament ikun il-ħiliet u l-ħin meħtieġa. Yann Horn wera kif, bl-għajnuna ta’ manipulazzjonijiet ta’ filigrana, tista’ tnaqqas il-kundizzjoni tar-razza li sseħħ meta ssejjaħ il-funzjonijiet close() u fget() simultanjament f’vulnerabbiltà kompletament sfruttabbli għall-użu wara ħieles u tikseb aċċess għal dejta diġà meħlusa. struttura ġewwa l-qalba.

Kundizzjoni ta' razza sseħħ waqt il-proċess ta' l-għeluq ta' deskrittur tal-fajl waqt li ssejjaħ close() u fget() fl-istess ħin. Is-sejħa biex tagħlaq() tista’ sseħħ qabel ma jiġi esegwit fget(), li se jħawdu lill-kollettur taż-żibel għax, skont ir-refcount, l-istruttura tal-fajl mhux se jkollha referenzi esterni, iżda tibqa’ mehmuża mad-deskrittur tal-fajl, i.e. Il-kollettur taż-żibel jaħseb li għandu aċċess esklussiv għall-istruttura, iżda fil-fatt, għal perjodu qasir ta 'żmien, id-dħul li jifdal fit-tabella tad-deskrittur tal-fajl xorta se jindika li l-istruttura tkun meħlusa.

Biex tiżdied il-probabbiltà li tidħol f'kundizzjoni ta 'razza, intużaw diversi tricks, li għamluha possibbli li tiżdied il-probabbiltà ta' suċċess ta 'esplojtazzjoni għal 30% meta jiġu introdotti ottimizzazzjonijiet speċifiċi għas-sistema. Pereżempju, biex jiżdied il-ħin tal-aċċess għal struttura b'deskritturi tal-fajls b'diversi mijiet ta' nanosekondi, id-dejta tneħħiet mill-cache tal-proċessur billi rmied il-cache b'attività fuq qalba oħra tas-CPU, li għamilha possibbli li tiġi rkuprata l-istruttura mill-memorja aktar milli minn il-cache veloċi tas-CPU.

It-tieni karatteristika importanti kienet l-użu ta 'interruzzjonijiet iġġenerati minn tajmer tal-ħardwer biex iżid il-ħin tal-kundizzjoni tat-tellieqa. Il-mument intgħażel sabiex l-interrupt handler jispara meta seħħet kundizzjoni tat-tellieqa u jinterrompi l-eżekuzzjoni tal-kodiċi għal xi żmien. Biex jittardja aktar ir-ritorn tal-kontroll, madwar 50 elf daħliet fil-waitqueue ġew iġġenerati bl-użu ta 'epoll, li kien jeħtieġ tfittxija permezz tal-interrupt handler.

It-teknika għall-isfruttament tal-vulnerabbiltà ġiet żvelata wara perjodu ta 'nuqqas ta' żvelar ta '90 jum. Il-problema tidher mill-kernel 2.6.32 u ġiet iffissata kmieni f'Diċembru. It-tiswija kienet inkluża fil-kernel 5.16 u ġiet trasferita wkoll għal fergħat LTS tal-kernel u l-pakketti tal-kernel fornuti fid-distribuzzjonijiet. Ta 'min jinnota li l-vulnerabbiltà ġiet identifikata waqt l-analiżi ta' problema simili CVE-2021-0920, li timmanifesta ruħha fil-kollettur taż-żibel meta tipproċessa l-bandiera MSG_PEEK.

Sors: opennet.ru

Żid kumment