Beartaítear stop a chur le húsáid utmp chun fáil réidh le Glbc fadhb Y2038

Mhol Thorsten Kukuk, ceannaire an ghrúpa forbartha teicneolaíochta sa todhchaí ag SUSE (Foireann Teicneolaíochta na Todhchaí, openSUSE MicroOS agus SLE Micro), a bhí i gceannas ar thionscadal Freastalaí Fiontraíochta SUSE LINUX ar feadh 10 mbliana roimhe seo, fáil réidh leis an gcomhad /var/run/utmp i ndáiltí chun aghaidh a thabhairt go hiomlán ar fhadhb 2038 sa Glbc. Tá sé beartaithe gach feidhmchlár a úsáideann utmp, wtmp agus lastlog a thiontú go liosta úsáideoirí a fháil a úsáideann systemd-logind.

An 19 Eanáir, 2038, rachaidh na háiritheoirí ama epochal atá sonraithe ag an gcineál time_t 32-giotán thar maoil. D'ainneoin cineál time_t 64-giotán a thabhairt isteach, leanann Glibc ag baint úsáide as cineál time_t 32-giotán i gcásanna áirithe ar ardáin 64-giotán chun comhoiriúnacht a choinneáil le hiarratais spáis úsáideora 32-giotán. Cás amháin den sórt sin is ea an comhad /var/run/utmp, a stórálann sonraí faoi úsáideoirí atá logáilte isteach sa chóras faoi láthair. Sonraítear an réimse ama in utmp le luach time_t 32-giotán.

Ní oibreoidh sé ach an réimse ama in utmp a athsholáthar ó chineál 32-giotán go cineál 64-giotán, mar go dtiocfaidh athrú ar an Glibc ABI mar thoradh air seo (athróidh an cineál feidhmeanna mar logáil isteach(), getutid() agus utmpname ()) agus comhoiriúnacht a bhriseadh le hiarratais a úsáideann utmp, lena n-áirítear w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, bainisteoirí taispeána xterm, emacs, openssh, qemu, samba, rsyslog, etc. Mar gheall ar an iliomad gaistí agus castacht a d’fhéadfadh a bheith ann, dhiúltaigh forbróirí Glibc an smaoineamh chun an cineál time_t in utmp a athsholáthar. Ar an gcúis chéanna, cuireadh deireadh leis an rogha an spás saor in aisce atá ar fáil sa struchtúr utmp a úsáid chun réimse ama 64-giotán breise a chur leis.

Ina theannta sin, ní réitíonn athrú doimhneacht an ghiotán cineál in utmp fadhbanna eile atá ann cheana féin, ar mhaith liom fáil réidh leo freisin. Mar shampla, teastaíonn ceadanna speisialta chun scríobh chuig utmp, rud a éilíonn go mbronnfar pribhléidí breise ar phróisis. Fadhb eile is ea go gceadaíonn an ailtireacht utmp d’úsáideoirí áitiúla ionsaithe DoS a dhéanamh, rud a fhágann go gcuirtear isteach ar an tseirbhís utmp trí ionramháil glais comhad, rud a fhágann nach féidir a bheith cinnte go léiríonn ábhar utmp fíor-staid an chórais. Beartaíodh próiseas breise cúlra a úsáid chun rochtain ar utmp a láimhseáil, ach le haghaidh tascanna den sórt sin tá próiseas logáil isteach siste ann cheana féin agus níl sé inmholta próiseas speisialaithe eile a sheoladh (beidh ar iarratais sonraí a aistriú chuig dhá láimhseálaí ag an am céanna).

Ag an am céanna, fiú nuair a bhíonn an fhadhb le hionsaithe DoS á réiteach, ní bhíonn ábhar utmp ach faisnéiseach agus ní ráthaíonn sé go mbeidh léiriú ar an réaltacht. Mar shampla, léiríonn aithriseoirí éagsúla agus ilphléacsóirí teirminéil a staid go difriúil - má sheoltar cúig chríochfort GNOME léireofar úsáideoir amháin in utmp, agus má sheoltar cúig chríochfort konsole nó xterm i KDE beidh sé mar thoradh air. Tá iompar an scáileáin agus tmux difriúil mar an gcéanna: sa chéad chás, déantar gach seisiún a chomhaireamh mar úsáideoir ar leith, agus sa dara háit, ní léirítear ach úsáideoir amháin do gach seisiún.

Mar thoradh air sin, mar an réiteach is simplí, tá sé beartaithe gach feidhmchlár a aistriú chun úsáid a bhaint as an tseirbhís mhalartach logála systemd atá ann cheana féin agus, tar éis nach bhfuil aon ríomhchláir reatha ag baint úsáide as utmp, stop an taifeadadh go utmp. Le cur in ionad wtmp, tá sé beartaithe comhéadain bogearraí a ullmhú chun faisnéis a scríobh agus a léamh faoi úsáideoirí a úsáideann systemd-journald. Áiríonn an bunchód don chéad eisiúint eile de systemd 254 cheana féin an fheidhmiúlacht riachtanach chun sonraí athsholáthair utmp a sholáthar trí libsystemd ag baint úsáide as an sd-login.h API nó trí DBUS.

Foinse: oscailtenet.ru

Add a comment