SSHole — en sĂ„rbarhet som gör det möjligt att ansluta via SSH utan lösenord i system med Musl

OpenSSH-utvecklarna har publicerat en akut uppdatering av OpenSSH 10.6p2, som innehÄller skydd mot en kritisk sÄrbarhet (CVE ej tilldelad), som fÄtt kodnamnet "SSHole" och gör det möjligt att kringgÄ autentisering. I system med musl-biblioteket möjliggör sÄrbarheten att koppla upp sig till en anvÀndare utan lösenord genom att mata in ett vilket som helst lösenord som innehÄller mer Àn 256 tecken. Problemet pÄverkar Linux-distributioner som anvÀnder den standard musl-biblioteket, men inte anvÀnder PAM (Pluggable Authentication Modules), sÄsom OpenWRT, Alpine, Buildroot och Yocto. En sÀrskild fara Àr att inloggning med lösenord ofta blockeras för root-anvÀndaren, vilket ger vem som helst möjlighet att koppla upp sig med administratörsrÀttigheter.

Felet som leder till sĂ„rbarheten finns inte i OpenSSH-koden, utan utnyttjas via sshd. Med tanke pĂ„ problemens allvar har en workaround för att blockera sĂ„rbarheten föreslagits i versionen OpenSSH 10.6p2. Ägare av drabbade system rekommenderas att omedelbart stĂ€nga av lösenordsautentisering via instĂ€llningen "PasswordAuthentication no" i /etc/ssh/sshd_config eller att helt stĂ€nga av SSH.

Problemet manifesterar sig inte i system som skiljer sig frÄn Linux och i Linux-miljöer baserade pÄ glibc, samt i system som anvÀnder PAM vid lösenordsautentisering. En korrigering Àr redan tillgÀnglig i Alpine och OpenWRT.

SÄrbarheten Àr relaterad till felaktig interaktion mellan OpenSSH och funktionen crypt() frÄn musl. För att skydda mot att faststÀlla existensen av anvÀndare genom tidsanalys av begÀrningar har OpenSSH sedan 2016 vid kontroll av lösenordsfria konton anvÀnt den normala proceduren för lösenordsverifiering: den anropar funktionen "crypt(mata in lösenord, salt)" med saltet frÄn en annan anvÀndare med en giltig lösenordshash, och jÀmför sedan den hash som returneras av funktionen crypt med vÀrdet frÄn fÀltet med lösenordshashen.

Men i musl returnerar funktionen crypt() för SHA-512-hashar tecknet "*" om lÀngden pÄ det angivna lösenordet överstiger 256 byte (en begrÀnsning som infördes 2012 för att skydda mot DoS-attacker, dÄ stora vÀrden medför stor belastning pÄ CPU:n). Samma tecken anvÀnds i fÀltet med lösenordshashen i "/etc/shadow" för att indikera konton dÀr lösenordsautentisering Àr blockerad.

Som följd av en attack kan den som kan ansluta till SSH-servern logga in pÄ valfri anvÀndarkonto dÀr det i '/etc/shadow' i fÀltet för lösenord anges symbolen '*', genom att skicka en strÀng frÄn 257 till 1024 byte. Problemet pÄverkar mÄnga befintliga Docker-bilder byggda med Alpine Linux, samt de officiella Alpine-bilderna för molnsystem som AWS och Azure, dÀr anvÀndaren root har en asterisk istÀllet för en hash för lösenordet.

Intressant nog fanns det initialt en tom root-lösenord i de officiella Docker-bilderna som anvÀnde Alpine sedan 2015, och efter att denna frÄga identifierades, istÀllet för en hash för lösenordet, sÀttes ett tecken '!' för att blockera Ätkomst. Men nÀrvaron av detta blockera SSH-inloggningar med nycklar, sÄ frÄn 2022 Àndrades blockeringstecknet för lösenordsinloggning till '*'.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster