Sårbarhed i OpenSSH, der muliggør fjernkørsel af kode med root-rettigheder på servere med Glibc

Firmaet Qualys har identificeret en kritisk sårbarhed (CVE-2024-6387) i OpenSSH, som muliggør fjernkørsel af kode med root-rettigheder uden godkendelse. Sårbarheden, der har kodenavnet regreSSHion, optræder i standardkonfigurationen fra version 8.5 af OpenSSH på systemer med den standardbibliotek Glibc.

Muligheden for angreb blev demonstreret på et 32-bit system med Glibc med aktiveret ASLR-beskyttelse (Randomisering af adresseplads). For at gennemføre et angreb under laboratoriebetingelser krævedes 6-8 timer, hvor serveren uafbrudt havde forbindelser med maksimal intensitet tilladt i sshd-konfigurationen. Angrebet forenkles og kræver mindre tid på systemer uden ASLR eller i distributioner, der bruger en modificeret version af OpenSSH, hvor den gentagne randomisering af ASLR for hver forbindelse er deaktiveret. Beslutningen om ikke at offentliggøre en fungerende prototype af exploit før sårbarheden er bredt udbedret er taget, men der er tilgængelig en tilstrækkelig detaljeret beskrivelse af sårbarhedens essens, som gør fremkomsten af tredjeparts exploits til et spørgsmål om tid.

Muligheden for at udføre angreb på 64-bit systemer udelukkes ikke, men en fungerende exploit til sådanne systemer er endnu ikke klar. Det antages, at det at udføre angreb på 64-bit systemer vil tage betydeligt længere tid, men ikke mere end en uge. OpenSSH i OpenBSD er ikke påvirket af problemet, da dette system siden 2001 har anvendt en beskyttelsesmekanisme, der blokerer for sådanne typer angreb. I andre systemer baseret på standardbiblioteker, der adskiller sig fra Glibc, er det teoretisk muligt at tilpasse metoden til angreb (dette spørgsmål er endnu ikke undersøgt af Qualys).

Sårbarheden er blevet udbedret i dagens udgivelse af OpenSSH 9.8 (patch). Man kan følge med i opdateringerne af pakker i distributioner på siderne: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, ROSA, Gentoo, ALT Linux, Arch og FreeBSD. Som en midlertidig løsning til at blokere sårbarheden kan parameteren «LoginGraceTime=0» i sshd_config sættes, men deaktivering af timeouten vil lette initiationen af denial-of-service ved at oprette et stort antal forbindelser, der overstiger de grænser, der er angivet via parameteren MaxStartups.
Et tegn på forsøg på angreb er fremkomsten af et stort antal poster "Timeout before authentication" i loggen.

Sårbarheden opstod som følge af et regressivt ændringsforslag, der blev inkluderet i udgivelsen af OpenSSH 8.5, hvilket førte til en race condition i kodehåndteringen af signaler i sshd. Regressionen resulterede i, at beskyttelsen mod den gamle sårbarhed CVE-2006-5051, der blev manifesteret indtil version 4.4 (2006), ikke længere fungerede og havde en teoretisk karakter.
Under udviklingen af OpenSSH 8.5 blev blokken "#ifdef DO_LOG_SAFE_IN_SIGHAND" fejlagtigt fjernet fra funktionen sigdie(), som kaldes direkte fra SIGALRM-handleren.

SIGALRM-handleren kaldes i sshd asynkront, hvis klienten ikke har gennemført autentificering inden for den tid, der er begrænset af forbindelsens timeout (LoginGraceTime, som standard 120 sekunder). Angrebet er baseret på, at signalhandleren kalder funktioner, der ikke er sikre ved asynkron håndtering af signaler, såsom syslog(). Funktionen syslog() i Glibc er ikke beregnet til brug i asynkront udførte signalhandler, da den kalder funktioner som malloc() og free(). Udløsningen af SIGALRM-signalet, der underbryder udførelsen af specifik kode i sshd, kan føre til en tilstandsunøjagtighed, og opgaven for exploitation er at skabe forhold, der muliggør underbrydelsen af den nødvendige kode på det rette tidspunkt af dens udførelse. Sårbarheden påvirker ikke OpenBSD, da der i stedet for syslog() kaldes funktionen syslog_r() fra SIGALRM-signalen, som er specielt designet til asynkron kørsel.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster