Linuxi tuuma kaughaavatavus, mis ilmneb TIPC-protokolli kasutamisel

Linuxi tuumamoodulis on tuvastatud haavatavus (CVE-2022-0435), mis tagab võrguprotokolli TIPC (Transparent Inter-process Communication) toimimise, mis võib potentsiaalselt lubada koodi käivitamist kerneli tasemel, saates selleks spetsiaalselt loodud võrku. pakett. Probleem puudutab ainult süsteeme, kuhu on laaditud tipc.ko kerneli moodul ja konfigureeritud TIPC-pinn, mida tavaliselt kasutatakse klastrites ja mis pole spetsialiseerimata Linuxi distributsioonides vaikimisi lubatud.

Tuleb märkida, et kerneli ehitamisel režiimis "CONFIG_FORTIFY_SRC=y" (kasutatakse RHEL-is), mis lisab funktsioonile memcpy() täiendavad piirikontrollid, piirdub töö hädaseiskamisega (tuum läheb paanikasse). Kui see käivitatakse ilma täiendavate kontrollideta ja kui teave virna kaitsmiseks kasutatud kanaari siltide kohta lekib, saab probleemi kasutada koodi kaugkäitamiseks tuumaõigustega. Probleemi tuvastanud teadlased väidavad, et ekspluateerimistehnika on triviaalne ja avalikustatakse pärast levituste haavatavuse laialdast kõrvaldamist.

Haavatavuse põhjustab pakettide töötlemisel tekkiv pinu ületäitumine, mille domeeniliikmete sõlmede arvuga välja väärtus ületab 64. Sõlme parameetrite salvestamiseks moodulis tipc.ko on fikseeritud massiiv “u32 members[64” ]” on kasutusel, kuid paketis määratletu töötlemise protsessis Sõlme number ei kontrolli "member_cnt" väärtust, mis võimaldab järgmiseks mälualal andmete kontrollitud ülekirjutamiseks kasutada väärtusi, mis on suuremad kui 64 virna struktuuri "dom_bef".

Haavatavuseni viinud viga tutvustati 15. juunil 2016 ja see lisati Linuxi 4.8 kernelisse. Haavatavus kõrvaldati Linuxi kerneli versioonides 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 ja 4.9.301. Enamiku distributsioonide tuumades on probleem lahendamata: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

TIPC-protokolli töötas algselt välja Ericsson, mis on mõeldud protsessidevahelise suhtluse korraldamiseks klastris ja aktiveeritakse peamiselt klastri sõlmedes. TIPC saab töötada kas Etherneti või UDP kaudu (võrguport 6118). Etherneti kaudu töötades saab rünnaku läbi viia kohalikust võrgust ja UDP kasutamisel globaalsest võrgust, kui port ei ole tulemüüriga kaetud. Rünnaku võib läbi viia ka hosti privilegeeritud kohalik kasutaja. TIPC aktiveerimiseks peate alla laadima tipc.ko kernelimooduli ja konfigureerima võrguliidese sidumise, kasutades netlinki või tipc utiliiti.

Allikas: opennet.ru

Lisa kommentaar