Ata zbuluan një dobësi në ksmbd në kernel Linux

dobësi

Nëse shfrytëzohen, këto të meta mund t'i lejojnë sulmuesit të kenë akses të paautorizuar në informacione të ndjeshme ose në përgjithësi të shkaktojnë probleme

Informacioni u publikua së fundmi se u zbulua një cenueshmëri e kernelit Linux me një rezultat CVSS prej 10 në serverin SMB, duke i dhënë një përdoruesi të paautentikuar mundësinë për të ekzekutuar kodin nga distanca.

Gabimi i gjetur lejon sulmuesit në distancë të ekzekutojnë kode arbitrare në instalimet e prekura. Autentifikimi nuk kërkohet për të shfrytëzuar këtë dobësi, por vetëm sistemet me ksmbd të aktivizuar janë të cenueshëm.

E meta specifike ekziston në përpunimin e komandave SMB2_TREE_DISCONNECT. Problemi rezulton nga mos vërtetimi i ekzistencës së një objekti përpara kryerjes së operacioneve në atë objekt. Një sulmues mund ta shfrytëzojë këtë dobësi për të ekzekutuar kodin në kontekstin e kernelit.

DETAJE TË CENUESHMËRISË
Kjo dobësi i lejon sulmuesit në distancë të ekzekutojnë kode arbitrare në instalimet e prekura të Kernelit Linux. Autentifikimi nuk kërkohet për të shfrytëzuar këtë dobësi, por vetëm sistemet me ksmbd të aktivizuar janë të cenueshëm.

E meta specifike ekziston në përpunimin e komandave SMB2_TREE_DISCONNECT. Problemi shkaktohet nga mungesa e vërtetimit të ekzistencës së një objekti përpara kryerjes së operacioneve në objekt. Një sulmues mund ta shfrytëzojë këtë dobësi për të ekzekutuar kodin në kontekstin e kernelit.

Është përmendur se në varësi të llojit të kërkesës SMB, çdo thread i ri mund të vendosë të kalojë komanda në hapësirën e përdoruesit (ksmbd.mountd); aktualisht, komandat DCE/RPC identifikohen të trajtohen nga hapësira e përdoruesit. Për të përdorur më mirë kernelin Linux, u vendos që komandat të trajtoheshin si elementë pune dhe të ekzekutoheshin në mbajtësit e fijeve ksmbd -io kworker.

Kjo i lejon menaxherët të multipleksojnë sepse kerneli kujdeset për fillimin e thread-eve shtesë të punëtorëve nëse ngarkesa rritet dhe anasjelltas, nëse ngarkesa zvogëlohet, ai vret fijet shtesë të punëtorëve.

Kur fillon demoni i serverit, ai fillon një thread fork (ksmbd/emri i ndërfaqes) në kohën e nisjes dhe hap një port të dedikuar 445 për të dëgjuar kërkesat SMB. Sa herë që klientët e rinj bëjnë një kërkesë, thread-i forker pranon lidhjen e klientit dhe krijon një thread të ri për një kanal të dedikuar komunikimi midis klientit dhe serverit. Kjo lejon që kërkesat (komandat) SMB nga klientët të përpunohen paralelisht dhe u mundëson klientëve të rinj të krijojnë lidhje të reja.

ksmbd ngriti flamuj të kuq midis disa përdoruesve të cilët diskutuan për bashkimin e tyre vitin e kaluar. SerNet, një kompani gjermane kompjuterike që ofron versionin e saj të Samba, tha në një postim në blog se ksmbd ishte e mrekullueshme, por dukej pak e papjekur. Për më tepër, ekipi i Samba+ i SerNet deklaroi në një postim në blog se vlera e shtimit të një serveri SMB në hapësirën e kernelit mund të mos jetë e vlefshme për rrezikun e "shtrydhjes së pjesës së fundit të performancës nga gjërat e disponueshme".

Për fat të mirë, nëse nuk po ekzekutoni modulin "eksperimental" ksmbd të Samsung, siç përshkruhet nga studiuesi i sigurisë Shir Tamari në Twitter, dhe e keni mbajtur Samba, jeni plotësisht të sigurt. “ksmbd është i ri; shumica e përdoruesve ende përdorin Samba dhe nuk preken. Në thelb, nëse nuk jeni duke ekzekutuar serverë SMB me ksmbd, shijoni fundjavën tuaj”, shkroi Tamari në Twitter.

Sipas Iniciativës Zero-Day, e cila zbuloi cenueshmërinë ksmbd, e meta e përdorimit pas pa pagesë ekziston në përpunimin e komandave SMB2_TREE_DISCONNECT. Sipas ZDI, problemi është shkaktuar nga ksmbd që nuk vërteton ekzistencën e objekteve përpara se të kryejë operacione mbi to.

Për ata që përdorin ksmbd, ekziston një zgjidhje tjetër përveç kalimit në Samba: përmirësimi në versionin 5.15.61 të kernelit Linux, i lëshuar në gusht ose më vonë. Ky përditësim i kernelit rregullon gjithashtu disa probleme të tjera në ksmbd: një lexim jashtë kufijve për SMB2_TREE_CONNECT, i cili sipas shënimit të korrigjimit mund të lejojë kërkesat e pavlefshme që të mos dërgojnë mesazhe dhe një rrjedhje memorie në smb2_handle_negotiate që shkakton një çlirim të pasaktë. memorie.

më në fund nëse jeni të interesuar të dinë më shumë për të, ju mund të kontrolloni detajet Në lidhjen vijuese.