Në patch-in gssapi.patch të përdorur në shumë distribucione Linux, i cili shton mbështetje për ndarjen e çelqeve mbi bazën e GSSAPI në OpenSSH, është zbuluar një vulnerabilitet (CVE-2026-3497), që çon në dereferencimin e treguesve, dëmtimin e memorie dhe shkeljen e mekanizmit të ndarjes së privilegjeve (Privsep). Ky vulnerabilitet mund të shfrytëzohet në mënyrë të aferme para se të kryhet autentifikimi. Një këkash që zbuloi problematikën demonstroi nisjen e një mbylljeje të procesit duke dërguar një paketë rrjeti të modifikuar në serverin SSH. Nuk përjashtohet mundësia që, përveç ndërprerjes së shërbimit, të ekzistojnë variante më të rrezikshme shfrytëzimi të vulnerabilitetit.
ĂshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se nĂ« atĂ« kohĂ« zhvilluesit e OpenSSH refuzuan tĂ« pranojnĂ« ndryshimin pĂ«r mbĂ«shtetje GSSAPI pĂ«r shkak tĂ« dyshimeve mbi sigurinĂ« e tij. MegjithatĂ«, shumĂ« distribucione Linux e pĂ«rfshinĂ« kĂ«tĂ« patch nĂ« paketat e tyre tĂ« OpenSSH. NĂ« pĂ«rdorim janĂ« disa versione tĂ« patch-it GSSAPI, por shumica prej tyre kanĂ« njĂ« gabim qĂ« çon nĂ« vulnerabilitet. NjĂ« zgjidhje Ă«shtĂ« e disponueshme vetĂ«m si patch, ndryshimi i tĂ« cilit pĂ«rfshin zĂ«vendĂ«simin e thirrjes sĂ« funksionit sshpkt_disconnect() me ssh_packet_disconnect() nĂ« skedarit kexgsss.c.
Aktualisht, prania e vulnerabilitetit është e konfirmuar në Debian dhe Ubuntu. Në distribucionet e tjera, përdorimi i patch-it problematik dhe ndjeshmëria e tij ndaj vulnerabilitetit po saktësohet (SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora). Vulnerabiliteti shfaqet vetëm kur opsioni "GSSAPIKeyExchange yes" është aktivizuar në konfigurime. Mundësia e shfrytëzimit gjithashtu ndikohet nga opsionet e kompajlerit me të cilat është ndërtuar paketa në distribucionet.
Arsyeja e shfaqjes së vulnerabilitetit është një gabim në funksionin sshpkt_disconnect(), i cili bëri që procesi të mos përfundonte pas marrjes së një mesazhi disconnect, duke lejuar sulmuesin që në fazën e negociatave të çelqeve të dërgonte një mesazh GSSAPI që nuk ishte parashikuar nga logjika e funksionimit. serverë pas marrjes së një mesazhi GSSAPI të paplanifikuar, server e vendos atë në radhë dhe nuk ndalon ekzekutimin e programit, por nuk inicializon variablat që përcaktojnë parametrat e lidhjes. Më vonë, në ciklin e trajtimit të ngjarjeve, ekzekutohet kodi që lexon strukturën e pa inicializuar recv_tok nga stack-u (lexohen të dhënat që kanë mbetur në stack nga thirrja e mëparshme e funksionit), e dërgon atë në procesin me privilegje nëpërmjet IPC dhe më pas e kalon në funksionin gss_release_buffer(), i cili mund të thërrasë funksionin free() dhe të çlirojë memorjen për një tregues të pavlefshëm që i referohet një zone të rastësishme të memorjes.
Burimi: opennet.ru
