SSHole — en sĂ„rbarhet som tillater SSH-tilkobling uten passord i systemer med Musl

Utviklerne av OpenSSH har publisert en nÞdsituasjonsoppdatering for OpenSSH 10.6p2, som gir beskyttelse mot en kritisk sÄrbarhet (CVE ikke tildelt), med kodenavn «SSHole», som gjÞr det mulig Ä omgÄ autentisering. I systemer med Musl-biblioteket lar sÄrbarheten deg logge inn som en bruker uten passord ved Ä skrive inn et hvilket som helst passord som er lengre enn 256 tegn. Problemet pÄvirker Linux-distribusjoner som bruker det standard musl-biblioteket, men ikke bruker PAM (Pluggable Authentication Modules), som OpenWRT, Alpine, Buildroot og Yocto. En spesiell risiko er at pÄlogging med passord ofte er blokkert for root-brukeren, slik at enhver kan logge inn eksternt med administratorrettigheter.

Feilen som fÞrer til sÄrbarheten ligger ikke i OpenSSH-koden, men utnyttes via sshd. Gitt alvorlighetsgraden i problemet, er det lagt frem en midlertidig lÞsning for Ä blokkere sÄrbarheten i OpenSSH 10.6p2. Eiere av berÞrte systemer anbefales Ä ikke vente pÄ oppdateringer, men umiddelbart deaktivere passordautentisering via innstillingen «PasswordAuthentication no» i /etc/ssh/sshd_config eller helt deaktivere SSH.

Problemet oppstÄr ikke i systemer som ikke er basert pÄ Linux, og i Linux-miljÞer basert pÄ glibc, samt i systemer som bruker PAM ved passordautentisering. En lÞsning er allerede tilgjengelig i Alpine og OpenWRT.

SÄrbarheten er relatert til feil interaksjon mellom OpenSSH og funksjonen crypt() fra musl. For Ä beskytte mot identifisering av eksisterende brukere ved Ä analysere tidsforskjeller i forespÞrselshÄndtering, bruker OpenSSH fra 2016 en standard prosedyre for passordkontroll: den kaller funksjonen «crypt(mottatt passord, salt)» med saltet til en annen bruker som har en gyldig passordhash, og sammenligner deretter den returnerte hash fra crypt-funksjonen med verdien i feltet med passordhashen.

Imidlertid returnerer crypt()-funksjonen i musl for SHA-512-hashverdier tegnet «*» hvis lengden pÄ det mottatte passordet overskrider 256 byte (denne begrensningen ble innfÞrt i 2012 for Ä beskytte mot DoS-angrep, siden store verdier medfÞrer hÞy belastning pÄ CPU). Det samme tegnet brukes i feltet med passordhashen i «/etc/shadow» for Ä indikere kontoer der passordautentisering er blokkert.

Som fÞlge av angrepet kan en angriper som har muligheten til Ä koble seg til SSH-serveren, fÄ tilgang til hvilken som helst brukerprofil der det i «/etc/shadow» i passordfeltet er angitt et symbol «*», ved Ä sende en streng med length fra 257 til 1024 byte. Problemet omfatter mange eksisterende Docker-bilder bygget med Alpine Linux, samt offisielle Alpine-bilder for skyplattformer som AWS og Azure, der brukeren root har et «*» i stedet for et passordhash.

Det er bemerkelsesverdig at i de offisielle Docker-bildene som bruker Alpine, har det siden 2015 vÊrt angitt et tomt root-passord, og etter at dette ble avdekket, ble det, i stedet for passordhashen, angitt et symbol «!». Men dette blokkerte innlogging med SSH-nÞkler, sÄ fra 2022 ble symbolet for Ä blokkere passordinnlogging endret til «*».

Kilde: opennet.ru

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster