Sårbarhed i GSSAPI-patchen til OpenSSH, der kan udnyttes eksternt før godkendelse

I den patch gssapi.patch, der anvendes i mange Linux-distributioner og tilføjer support for GSSAPI-baseret nøgleudveksling i OpenSSH, er der opdaget en sårbarhed (CVE-2026-3497), der fører til dereferencering af en peger, hukommelsesskader og omgåelse af privilegiedelingen (Privsep) mekanismen. Sårbarheden kan udnyttes eksternt før godkendelse. Forskeren, der opdagede problemet, demonstrerede en procesnedbrud ved at sende en modificeret netværkspakke til SSH-serveren. Det er muligt, at der er mere alvorlige udnyttelsesmuligheder ud over tjenestenægtelse.

Det er bemærkelsesværdigt, at OpenSSH-udviklerne tidligere satte spørgsmålet om at inkludere GSSAPI-support i hovedlinjen i bero på grund af sikkerhedsmæssige tvivl. Alligevel har mange Linux-distributioner inkluderet denne patch i deres OpenSSH-pakker. Flere versioner af GSSAPI-patchen findes i brug, men de fleste indeholder en fejl, der fører til sårbarheden. Rettelsen er i øjeblikket kun tilgængelig i form af en patch, der indebærer at erstatte funktionsopkaldet sshpkt_disconnect() med ssh_packet_disconnect() i kexgsss.c-filen.

I øjeblikket er tilstedeværelsen af sårbarheden bekræftet i Debian og Ubuntu. I øvrige distributioner undersøges anvendelsen af den problematiske patch og dens sårbarhed (SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora). Sårbarheden optræder kun, når muligheden 'GSSAPIKeyExchange yes' er aktiveret i indstillingerne. Kompilatorindstillingerne, som distributionerne er bygget med, påvirker også muligheden for udnyttelse.

Årsagen til sårbarheden er en fejl i funktionen sshpkt_disconnect(), som gjorde, at processen ikke blev afsluttet efter modtagelse af en disconnect-besked, hvilket gjorde det muligt for angriberen at sende en type GSSAPI-besked, der ikke var forudset i driftens logik på nøglesamordningsstadiet. server Efter modtagelsen af en uventet GSSAPI-besked, server indsætter det i køen og afbryder ikke programmet, men initialiserer ikke de variabler, der definerer forbindelsesparametrene. I den følgende begivenhedsløkke udføres koden, der læser den ikke-initialiserede struktur recv_tok fra stakken (data, der er tilbage på stakken fra det foregående funktionskald), sender den til en privilegeret proces via IPC og derefter overfører den til funktionen gss_release_buffer(), som kan kalde funktionen free() og frigive hukommelse til en ugyldig pointer henvisende til et vilkårligt område i hukommelsen.

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