OpenSSH-s eelmisel nädalal avastatud kriitilise haavatavuse uurimise käigus avastati veel üks sarnane haavatavus (CVE-2024-6409), mis võimaldab kaugtäideviimist ilma autentimiseta. Uus haavatavus ei ole nii tõsine kui eelmine, kuna see ilmneb pärast privileegide tagasivõtmist käimasolevas SSH-serveri alamprotsessis. Haavatavus esineb openssh pakettides, mis on pärit Red Hat Enterprise Linux 9 ja põhinevad 2021. aastal avaldatud OpenSSH 8.7 versioonil. Probleem puudutab ka Fedora Linux 36 ja 37 pakette, mis põhinevad OpenSSH 8.7 ja 8.8 versioonidel.
Haavatavus on olemuselt sarnane eelnevale probleemile ja on samuti põhjustatud võidusõidureeglist SIGALRM katkestuse töötlejas, mis tuleneb funktsioonide käitamisest, mida ei ole mõeldud asünkroonses režiimis kutsumiseks signaalide töötlejatest. Töötleja aktiveeritakse, kui aegumisaeg, mis on määratud parameetri LoginGraceTime abil, saabub ja katkestab praeguse koodi täitmise. Katkestuste töötlejas, kus kasutatakse asünkroonselt täitmiseks ettevalmistamata funktsioone, mis teevad dünaamilist mälureserveerimist, nagu syslog(), võib SIGALRM-i aktiveerimise ajal tekkida malloc siseandmete kahjustus.
Uus haavatavus erineb sellest, et võidusõidureegel tekib grace_alarm_handler() signaalitöötlija funktsiooni cleanup_exit() kutsumise tõttu. OpenSSH peamises koodibaasis võib seda funktsiooni kasutada asünkroonselt täidetavas koodis, kuid RHEL 9 ja Fedora pakettides on rakendatud täiendav plaastr, mis lisab cleanup_exit() funktsiooni, et genereerida audititeateid, mis on mõeldud korraldatud signaalide töötlejatele.
Seda plaastrit kasutati RHEL 9 ja selle derivaadid, mis on üles ehitatud OpenSSH 8.7p1-le. Ajakohastes Fedora väljaannetes probleem ei avaldu, kuna Fedora 38-st on jaotus läinud uuele OpenSSH versioonile ilma cleanup_exit() muutmata. Erinevalt eelmisest haavatavusest ei sobi uue probleemi blokeerimiseks kaitsemeetod, mis põhineb sshd-i ' -e ' valiku kasutamisel, mis keelab logide väljundi syslogi kaudu. Samas võib sshd_configis haavatavuse blokeerimiseks seada parameetri 'LoginGraceTime=0'.
Allikas: opennet.ru
