Mayhem - tlhaselo ea bobolu ba memori ho feta netefatso ea sudo le OpenSSH

Bafuputsi ba Worcester Polytechnic Institute (USA) ba hlahisitse mofuta o mocha oa tlhaselo ea Mayhem e sebelisang mokhoa oa ho sotha oa Rowhammer o matla oa RAM ho fetola boleng ba mefuta e mengata e sebelisoang e le lifolakha lenaneong ho etsa qeto ea hore na netefatso le licheke tsa ts'ireletso li fetile. Mehlala e sebetsang ea tlhaselo e bonts'oa ho feta netefatso ho SUDO, OpenSSH le MySQL, hammoho le ho fetola sephetho sa licheke tse amanang le ts'ireletso laebraring ea OpenSSL.

Tlhaselo e ka sebelisoa lits'ebetsong tse sebelisang licheke ho bapisa boleng bo fapaneng le zero. Mohlala oa khoutu e tlokotsing: int auth = 0; ... // khoutu ya netefatso e fetolang boleng ba auth haeba ho ka netefatswa ka katleho haeba(auth != 0) kgutlisetsa AUTH_SUCCESS; o seng o kgutle AUTH_FAILURE;

Boemong ba mohlala ona, bakeng sa tlhaselo e atlehileng ho lekane ho senya leha e le efe mohopolong o amanang le 32-bit auth variable ho stack. Haeba karolo efe kapa efe e feto-fetohang e senyehile, boleng bo ke ke ba hlola bo e-ba zero mme opareitara e nang le maemo a tla etsa qeto ea katleho e atlehileng ea netefatso. Mekhoa e joalo ea netefatso e tloaelehile lits'ebetsong mme e fumaneha, mohlala, ho SUDO, OpenSSH, MySQL le OpenSSL.

Mayhem - tlhaselo ea bobolu ba memori ho feta netefatso ea sudo le OpenSSH

Tlhaselo e ka boela ea sebelisoa ha ho bapisoa le foromo "haeba (auth == 1)", empa tabeng ena ts'ebetsong ea eona e fetoha e rarahaneng, kaha ho hlokahala hore u se ke ua khopamisa leha e le efe ea 32, empa e nyenyane ea ho qetela. Mokhoa ona o ka boela oa sebelisoa ho susumetsa boleng ba lintho tse feto-fetohang ka har'a li-processor tsa processor, kaha litaba tse ka har'a lirekoto li ka fetisetsoa ka nakoana ho stack ha switch ea maemo, mohala oa ts'ebetso, kapa mollo oa sebatli. Nakong ea nako ha litekanyetso tsa li-register li ntse li le mohopolong, likhothaletso li ka hlahisoa mohopolong ona mme boleng bo fetotsoeng bo tla khutlisetsoa ho registe.

Mayhem - tlhaselo ea bobolu ba memori ho feta netefatso ea sudo le OpenSSH

Ho sotha likotoana, e 'ngoe ea liphetoho tsa tlhaselo ea sehlopha sa RowHammer e sebelisoa. Kaha memori ea DRAM ke lisele tse nang le mahlakore a mabeli, e 'ngoe le e' ngoe e na le capacitor le transistor, ho bala ka mokhoa o tsoelang pele sebakeng se le seng sa mohopolo ho fella ka ho fetoha ha motlakase le li-anomalies tse bakang tahlehelo e nyenyane ea tefiso liseleng tsa boahelani. Haeba matla a ho bala a phahame, joale sele ea boahelani e ka lahleheloa ke tefiso e lekaneng e lekaneng 'me potoloho e latelang ea tsosoloso e ke ke ea e-ba le nako ea ho tsosolosa boemo ba eona ba pele, e leng se tla lebisa phetohong ea boleng ba data e bolokiloeng ka seleng. . Ho sireletsa khahlanong le RowHammer, baetsi ba li-chip ba kentse mochine oa TRR (Target Row Refresh), o thibelang bobolu ba lisele maemong a khethehileng, empa ha o sireletse khahlanong le mefuta eohle ea tlhaselo e ka khonehang.

Ho itšireletsa khahlanong le tlhaselo ea Mayhem, ho khothalletsoa ho sebelisa papisong eseng tlhahlobo ea liphapang ho tloha ho zero kapa tsietsi e le 'ngoe, empa tlhahlobo ea papali e sebelisang boleng ba peo e sa reroang le li-octet tse se nang zero. Tabeng ena, ho beha boleng bo lakatsehang ba ho feto-fetoha, hoa hlokahala ho sotha ka nepo palo e kholo ea li-bits, e leng ntho e sa utloahaleng, ho fapana le ho sotha ha nyenyane e le 'ngoe. Mohlala oa khoutu e ke keng ea hlaseloa: int auth = 0xbe406d1a; ... // khoutu ea netefatso e behang boleng ba 'nete ho 0x23ab8701 molemong oa netefatso e atlehileng haeba(auth == 0x23ab8701) khutlisetsa AUTH_SUCCESS; o seng o kgutle AUTH_FAILURE;

Mokhoa o boletsoeng oa ts'ireletso o se o sebelisitsoe ke baetsi ba sudo mme o kenyellelitsoe tokollong ea 1.9.15 e le tokiso bakeng sa ts'oaetso ea CVE-2023-42465. Ba rera ho phatlalatsa prototype ea khoutu bakeng sa ho etsa tlhaselo ka mor'a hore ho lokisoe merero e meholo e tlokotsing.

Source: opennet.ru

Eketsa ka tlhaloso