Gisugyot nga hunongon ang paggamit sa utmp aron mawala ang Glibc sa problema sa Y2038

Si Thorsten Kukuk, lider sa Future Technology Team sa SUSE (Future Technology Team, nagpalambo sa openSUSE MicroOS ug SLE Micro), nga kaniadto nanguna sa SUSE LINUX Enterprise Server nga proyekto sulod sa 10 ka tuig, misugyot nga tangtangon ang /var/run/utmp file sa pag-apod-apod aron hingpit nga matubag ang problema sa Y2038 sa Glibc. Ang tanan nga mga aplikasyon nga naggamit sa utmp, wtmp, ug lastlog gisugyot nga ibalhin aron makakuha usa ka lista sa mga tiggamit gamit ang systemd-logind.

Sa Enero 19, 2038, ang epoch time counters nga gitakda sa 32-bit time_t type moawas. Sa Glibc, bisan pa sa pagpaila sa 64-bit time_t type, aron mamentinar ang compatibility sa 32-bit user-space applications, ang 64-bit time_t type gigamit gihapon sa pipila ka kaso sa 32-bit nga mga plataporma. Usa sa ingon nga kaso mao ang /var/run/utmp file, nga nagtipig sa datos bahin sa mga tiggamit nga karon naka-log in sa sistema. Ang time field sa utmp gitakda gamit ang 32-bit time_t value.

Ang pag-usab lang sa usa ka field sa utmp gikan sa 32-bit type ngadto sa 64-bit type sa paglabay sa panahon dili molihok, tungod kay kini mag-usab sa Glibc ABI (ang tipo mausab sa mga function sama sa login(), getutid() ug utmpname() ) ug break compatibility sa mga aplikasyon nga naggamit sa utmp, lakip ang w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm display managers, emacs, openssh, qemu, samba, rsyslog, etc. Tungod sa kadagaya sa posibleng mga lit-ag ug kahago, ang ideya sa pag-ilis sa gamay nga gitas-on sa time_t type sa utmp gisalikway sa mga developers sa Glibc. Sa parehas nga hinungdan, ang kapilian sa paggamit sa magamit nga wanang sa istruktura sa utmp aron makadugang usa ka dugang nga 64-bit time field gihulog.

Dugang pa, ang pagbag-o sa gamay nga giladmon sa tipo sa utmp dili makasulbad sa ubang mga problema, nga gusto ko usab nga tangtangon. Pananglitan, ang pagsulat sa utmp nanginahanglan espesyal nga pagtugot, nga nanginahanglan dugang nga mga pribilehiyo nga ihatag sa mga proseso. Ang laing problema mao nga ang arkitektura sa utmp nagtugot sa mga lokal nga tiggamit sa paghimo sa mga pag-atake sa DoS nga makaguba sa serbisyo sa utmp pinaagi sa pagmaniobra sa mga lock sa file, nga imposible nga masiguro nga ang mga sulod sa utmp nagpakita sa tinuod nga kahimtang sa sistema. Gisugyot nga mogamit usa ka dugang nga proseso sa background aron madumala ang pag-access sa utmp, apan alang sa ingon nga mga buluhaton adunay na usa ka proseso sa pag-login sa systemd ug dili maayo nga magsugod sa usa ka espesyal nga proseso (ang mga aplikasyon kinahanglan nga ibalhin ang data sa duha nga mga handler sa parehas nga oras) .

Sa parehas nga oras, bisan kung masulbad ang problema sa mga pag-atake sa DoS, ang sulud sa utmp nagpabilin nga kasayuran lamang, dili garantiya ang usa ka pagpamalandong sa kamatuoran. Pananglitan, ang lain-laing mga terminal emulator ug multiplexer nagpakita sa ilang estado nga lahi - ang pagpadagan sa lima ka GNOME terminals moresulta sa usa ka user nga makita sa utmp, samtang ang pagpadagan sa lima ka konsole o xterm terminal sa KDE moresulta sa unom. Sa parehas nga paagi, ang pamatasan sa screen ug tmux magkalainlain, sa una nga kaso ang matag sesyon giisip nga lahi nga tiggamit, ug sa ikaduha usa ra ka tiggamit ang gipakita alang sa tanan nga mga sesyon.

Ingon usa ka sangputanan, ingon ang labing yano nga solusyon, gisugyot nga ibalhin ang tanan nga mga aplikasyon aron magamit ang naa na nga alternatibo nga serbisyo sa pag-login sa systemd ug, pagkahuman wala’y aktuwal nga mga programa nga nag-access sa utmp, hunong sa pagsulat sa utmp. Aron mapulihan ang wtmp, gisugyot ang pag-andam sa mga API alang sa pagsulat ug pagbasa sa kasayuran bahin sa mga tiggamit gamit ang systemd-journald. Ang codebase alang sa sunod nga pagpagawas sa systemd 254 naglakip na sa gikinahanglan nga mga gimbuhaton aron mahatagan ang kapuli nga utmp data pinaagi sa libsystemd gamit ang sd-login.h API o pinaagi sa DBUS.

Source: opennet.ru

Idugang sa usa ka comment