Ho tlosa Glibc ka bothata ba 2038, ho etsoa tlhahiso ea ho emisa ho sebelisa utmp

Thorsten Kukuk, moetapele oa sehlopha sa nakong e tlang sa nts'etsopele ea mahlale ho SUSE (Future Technology Team, e nts'etsapele OpenSUSE MicroOS le SLE Micro), eo pele a neng a etelletse pele morero oa SUSE LINUX Enterprise Server ka lilemo tse 10, o khothalelitse ho tlosa file ea /var/run/utmp. kabong ho rarolla bothata ba 2038 ho Glibc ka botlalo. Lisebelisoa tsohle tse sebelisang utmp, wtmp le lastlog li reretsoe ho fetoloa ho fumana lenane la basebelisi ba sebelisang systemd-logind.

Ka la 19 Pherekhong, 2038, libali tsa nako ea epochal tse boletsoeng ke mofuta oa 32-bit time_t li tla tlala. Glibc, leha e hlahisitse mofuta oa 64-bit time_t, e ntse e tsoela pele ho sebelisa mofuta oa 32-bit time_t maemong a mang ho li-platform tsa 64-bit ho boloka ho lumellana le lisebelisoa tsa sebaka sa 32-bit. E 'ngoe ea linyeoe tse joalo ke faele ea /var/run/utmp, e bolokang data mabapi le basebelisi ba kentsoeng hona joale tsamaisong. Sebaka sa nako ho utmp se hlalositsoe ho sebelisoa boleng ba 32-bit time_t.

Ho fetola sebaka sa nako ho utmp ho tloha ho 32-bit ho ea ho mofuta oa 64-bit ho ke ke ha sebetsa, kaha sena se tla lebisa phetohong ea Glibc ABI (mofuta o tla fetoha mesebetsing e kang login(), getutid() le utmpname. ) Ka lebaka la bongata ba maraba le ho rarahana, mohopolo oa ho fetola mofuta oa time_t ho utmp o ile oa hanoa ke bahlahisi ba Glibc. Ka lebaka le tšoanang, khetho ea ho sebelisa sebaka sa mahala se fumanehang mohahong oa utmp ho eketsa nako e eketsehileng ea 64-bit e ile ea lahloa.

Ho phaella moo, ho fetola botebo ba mofuta oa utmp ha ho rarolle mathata a mang a teng, ao ke ratang ho a tlosa. Mohlala, ho ngolla utmp ho hloka litokelo tse khethehileng, tse hlokang hore lits'ebetso li fuoe litokelo tse eketsehileng. Bothata bo bong ke hore meralo ea utmp e lumella basebelisi ba lehae ho etsa litlhaselo tsa DoS, e lebisang pherekanong ea ts'ebeletso ea utmp ka ho qhekella liloko tsa lifaele, e leng se etsang hore ho se khonehe ho netefatsa hore litaba tsa utmp li bonts'a boemo ba 'nete ba sistimi. Ho ile ha etsoa tlhahiso ea ho sebelisa ts'ebetso e eketsehileng ea morao-rao ho sebetsana le phihlello ea utmp, empa bakeng sa mesebetsi e joalo ho se ho ntse ho e-na le ts'ebetso ea systemd-logind mme ho qala ts'ebetso e 'ngoe e ikhethang ha ho khothaletsoe (likopo li tla tlameha ho fetisetsa data ho batho ba babeli ba sebetsang ka nako e le ngoe).

Ka nako e ts'oanang, le ha u rarolla bothata ka litlhaselo tsa DoS, litaba tsa utmp li lula li le tlhahisoleseling feela 'me ha li tiise ponts'o ea 'nete. Mohlala, li-emulator tse fapaneng le li-terminal multiplexers li bonts'a boemo ba tsona ka tsela e fapaneng - ho qala li-terminals tse hlano tsa GNOME ho tla etsa hore mosebelisi a le mong a bonahatsoe ho utmp, mme ho hlahisa li-terminals tse hlano tsa konsole kapa xterm ho KDE ho tla fella ka tse tšeletseng. Boitšoaro ba skrine le tmux bo fapane ka tsela e tšoanang: tabeng ea pele, lenaneo le leng le le leng le baloa e le mosebedisi ea arohaneng, 'me ka lekhetlo la bobeli, ho bontšoa mosebedisi a le mong bakeng sa mananeo ohle.

Ka lebaka leo, joalo ka tharollo e bonolo ka ho fetesisa, ho khothaletsoa ho fetisetsa lits'ebetso tsohle ho sebelisa ts'ebeletso e seng e ntse e le teng ea systemd-logind mme, kamora hore ho se na mananeo a hajoale a fihlella utmp, emisa ho rekota ho utmp. Ho nkela wtmp sebaka, ho reretsoe ho lokisa li-interface tsa software bakeng sa ho ngola le ho bala tlhahisoleseling ka basebelisi ba sebelisang systemd-journald. Codebase bakeng sa tokollo e latelang ea systemd 254 e se e ntse e kenyelletsa ts'ebetso e hlokahalang ho fana ka data ea phetoho ea utmp ka libsystemd ho sebelisa sd-login.h API kapa ka DBUS.

Source: opennet.ru

Eketsa ka tlhaloso