OpenSSH izstrÄdÄtÄji ir publicÄjuÅ”i steidzamu atjauninÄjumu OpenSSH 10.6p2, kurÄ ir pievienota aizsardzÄ«ba pret kritisku ievainojamÄ«bu (CVE nav pieŔķirts), kas saÅÄmusi segvÄrdu "SSHole" un ļauj apiet autentifikÄciju. SistÄmÄs ar Musl bibliotÄku ievainojamÄ«ba ļauj pieslÄgties lietotÄjam, kuram nav iestatÄ«ta parole, ievadot jebkuru paroli, kas satur vairÄk par 256 simboliem. ProblÄma ietekmÄ Linux izplatÄ«jumus, kas izmanto standarta musl bibliotÄku, bet neizmanto PAM (Pluggable Authentication Modules), piemÄram, OpenWRT, Alpine, Buildroot un Yocto. ÄŖpaÅ”i bÄ«stami ir tas, ka bieži parole piekļuve ir bloÄ·Äta lietotÄjam root, kas dod iespÄju ikvienam attÄlinÄti pieslÄgties ar administratora privilÄÄ£ijÄm.
IevainojamÄ«bu izraisoÅ”Ä kļūda nav OpenSSH kodÄ, bet to izmanto caur sshd. Å emot vÄrÄ problÄmas nopietnÄ«bu, OpenSSH 10.6p2 versijÄ ir ieteikts apiet ievainojamÄ«bu. SistÄmu Ä«paÅ”niekiem, kuras ir pakļautas Å”ai problÄmai, ieteikts negaidÄ«t atjauninÄjumus, bet nekavÄjoties atslÄgt paroles autentifikÄciju, izmantojot parametru "PasswordAuthentication no" failÄ /etc/ssh/sshd_config vai pilnÄ«bÄ atslÄgt SSH.
ProblÄma neizpaužas sistÄmÄs, kas nav Linux, un Linux vidÄs, kas balstÄ«tas uz glibc, kÄ arÄ« sistÄmÄs, kas izmanto PAM, veicot paroles autentifikÄciju. Labojums jau ir pieejams Alpine un OpenWRT.
IevainojamÄ«ba saistÄ«ta ar nepareizu OpenSSH un musl funkcijas crypt() savstarpÄju mijiedarbÄ«bu. Lai aizsargÄtu pret lietotÄju pastiÅas noteikÅ”anu, analizÄjot laika atŔķirÄ«bas pieprasÄ«jumu apstrÄdÄ, kopÅ” 2016. gada OpenSSH, pÄrbaudot bezparoles kontus, izmanto standarta paroles pÄrbaudes procedÅ«ru: izsauc funkciju "crypt(nodota parole, sÄls)" ar cita lietotÄja sÄli, kam ir derÄ«gs paroles hashes, un pÄc tam salÄ«dzina ar funkcijas crypt atgriezto hash vÄrtÄ«bu no lauka ar hash no parolÄm.
TomÄr musl funkcija crypt() SHA-512 hashiem atgriež simbolu "*", ja nodotÄs paroles garums pÄrsniedz 256 baitus (ierobežojums ieviests 2012. gadÄ, lai aizsargÄtu pret DoS uzbrukumiem, jo, nosÅ«tot lielus vÄrtÄ«bas, palielinÄs slodze uz CPU). Tas pats simbols tiek izmantots hash laukumÄ parolÄ failÄ "\/etc\/shadow", lai apzÄ«mÄtu kontus, kurÄm paroles autentifikÄcija ir bloÄ·Äta.
TÄdÄjÄdi uzbrucÄjs, kuram ir iespÄja pievienoties SSH serverim, var pieslÄgties jebkurai lietotÄju kontam, kuram failÄ ā/etc/shadowā parole ir norÄdÄ«ta ar simbolu ā*ā, nosÅ«tot virkni no 257 lÄ«dz 1024 baitiem. ProblÄma attiecas uz daudziem esoÅ”ajiem Docker attÄliem, kas izveidoti, izmantojot Alpine Linux, kÄ arÄ« standarta Alpine attÄliem mÄkoÅu sistÄmÄs AWS un Azure, kur lietotÄjam root, kurÄ vietÄ ir jÄbÅ«t paroles hash, ir norÄdÄ«ts simbols ā*ā.
Interesanti, ka sÄkotnÄji oficiÄlajos Docker attÄlos, kas izmantoja Alpine, kopÅ” 2015. gada bija norÄdÄ«ta tukÅ”a root parole, bet pÄc Ŕī fakta atklÄÅ”anas, vietÄ paroles hash tika norÄdÄ«ts simbols ā!ā, kas tomÄr bloÄ·Äja pieslÄgÅ”anos ar SSH atslÄgÄm, tÄpÄc kopÅ” 2022. gada bloÄ·ÄÅ”anas simbols parolÄm tika nomainÄ«ts uz ā*ā.
Avots: opennet.lv
