Vaatamata eelmisel nĂ€dalal tuvastatud OpenSSH kriitilisele haavatavusele, avastati veel ĂŒks sarnane haavatavus (CVE-2024-6409), mis vĂ”imaldab saavutada kauglĂ€hetust ilma autentimiseta. Uus haavatavus ei ole nii ohtlik kui eelmine, kuna see avaldub pĂ€rast privileegide tĂŒhistamist kĂ€ivitatud SSH-serveri alamprotsessis. Haavatavus on olemas Red Hat Enterprise Linux 9 pakettides, mis 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 vĂ€ljaannetel.
Oma olemuselt on haavatavus sarnane eelmisele probleemile ja on samuti pĂ”hjustatud SIGALRM katkestuse töötleja vĂ”istlusest, mis tuleneb funktsioonide tĂ€itmisest, mis ei ole mĂ”eldud asĂŒnkroonses reĆŸiimis signaalide töötlejatest vĂ€lja kutsuma. Töötleja aktiveeritakse, kui aegumisaeg, mille mÀÀrab parameeter LoginGraceTime, on möödunud, ja katkestab praeguse koodi tĂ€itmise. Katkestuste töötlejas asĂŒnkroonselt tĂ€itmiseks mitte sobivate funktsioonide, nagu syslog(), kasutamine vĂ”ib pĂ”hjustada malloc'i sisemiste struktuuride kahjustusi, kui SIGALRM aktiveeritakse teatud koodi tĂ€itmise ajal.
Uus haavatavus erineb sellest, et vĂ”istlusolukord tekib, kui signaali töötlejas grace_alarm_handler() kutsutakse funktsioon cleanup_exit(). OpenSSH pĂ”hikoodis vĂ”ib seda funktsiooni kasutada asĂŒnkroonselt tĂ€idetavas koodis, kuid RHEL 9 ja Fedora pakettidesse on rakendatud tĂ€iendav plaastr, mis lisab cleanup_exit() funktsiooni, et genereerida auditi sĂŒndmusi, mis on ette nĂ€htud signaalide töötlejatena kasutamiseks.
Seda plaastrit on kasutatud RHEL 9 ja selle derivaadide pakettides, mis pĂ”hinevad OpenSSH 8.7p1 versioonil. Praegustes Fedora vĂ€ljaannetes probleem ei ilmne, kuna alates Fedora 38 on distributsioonil uue OpenSSH versiooni kasutuselevĂ”tt ilma cleanup_exit() muutmata. Erinevalt eelmisest haavatavusest ei sobi uusi probleeme blokeerida töö ĂŒmber, mis pĂ”hineb sshd-is valiku -e kasutamisel, mis keelab logifailide vĂ€ljundi syslogi kaudu. Kuid sellegipoolest saab sshd_config-is haavatavuse blokeerimiseks seadistada parameetri LoginGraceTime=0.
Allikas: opennet.ru
