Sårbarheder i Linux-kernen, der muliggør forhøjede privilegier via nf_tables og ksmbd

I Netfilter, en del af Linux-kernen, der bruges til filtrering og modificering af netværkspakker, er der opdaget en sårbarhed (CVE-2024-1086), der gør det muligt for en lokal bruger at udføre kode på kernel-niveau og hæve sine privilegier i systemet. Problemet skyldes en dobbeltfrigørelse af hukommelse (double-free) i modulet nf_tables, der muliggør driften af pakke-filtersystemet nftables. Sikkerhedsundersøgeren, der opdagede sårbarheden, har udviklet og offentliggjort et fungerende prototype-udnyttelse.

Effekten af udnyttelsen blev demonstreret i de aktuelle versioner af Debian og Ubuntu med Linux-kernene 5.14 — 6.6, samt i et miljø med KernelCTF (Capture the Flag), der inkluderer yderligere patche for at blokere typiske angrebsmønstre og som bruges af Google i deres belønningsprogram for fundne sårbarheder. Succeed-graden for udnyttelsen er anslået til 99,4%. I den ledsagende artikel er processen for oprettelse af en kompleks, flertrins-udnyttelse og omgåelse af beskyttelses- og modvirkningsmekanismerne i kernen blevet grundigt analyseret.

Sårbarheder i Linux-kernen, der muliggør forhøjede privilegier via nf_tables og ksmbd

Problemet er relateret til en fejl i funktionen nft_verdict_init(), der tillader anvendelse af positive værdier som fejlkoder til pakkeafvisning (DROP) i hooks, hvilket kan bruges til at påkalde en gentagen hukommelsesfrigøringsoperation for en buffer, hvor funktionen free() allerede er blevet kaldt. Problemet opstår, når NF_DROP-operationen dannes med en fejl, og kernen oprindeligt fortolker NF_DROP, men derefter frigiver bufferen og returnerer status NF_ACCEPT. Denne situation fører til, at selvom den relaterede pakke-buffer er frigivet, stoppes behandlingen ikke, men overføres til en anden behandler, som i sin tur kalder hukommelsesfrigøringsfunktionen en anden gang.

Sårbarheden viser sig fra Linux-kernens version 3.15, men udnyttelsen fungerer med kerner fra version 5.14. En løsning på sårbarheden er blevet foreslået i Linux-kernens version 6.8-rc1 og er i slutningen af februar blevet overført til de stabile grene 5.15.149, 6.1.76 og 6.6.15. I distributionerne kan man følge op på løsningen af sårbarheden på følgende sider: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Derudover kan en serie sårbarheder i modulet ksmbd, som tilbyder en indbygget filsystemimplementering i Linux-kernen, nævnes. server baseret på SMB-protokollen: Sårbarheden CVE-2024-26592 muliggør fjernudførelse af kode med kernelrettigheder uden autentificering på systemer med aktiveret ksmbd-modul. Problemet skyldes en race condition i TCP-forbindelseshåndteringskoden, som opstår på grund af manglende korrekt låsning ved arbejde med objektet.

Sårbarheden CVE-2023-52440 muliggør også fjernudførelse af kode med kernelrettigheder, men skyldes en buffer-overløb ved behandling af ugyldige sessionsnøgler på grund af manglende korrekt kontrol af størrelsen på data modtaget fra brugeren, før de kopieres til en fast størrelse buffer.

Sårbarhederne (1, 2, 3) CVE-2024-26594, CVE-2023-52442 og CVE-2023-52441 i ksmbd giver mulighed for at bestemme indholdet af kernebufferen uden autentificering. Sårbarheden CVE-2024-26594 skyldes manglende korrekt kontrol af data ved behandling af indkomne SMB2 Mech-token, hvilket fører til returnering af data fra uden for bufferens område. Sårbarheden CVE-2023-52442 skyldes manglende korrekt kontrol af inddata ved behandling af kædede anmodninger. Sårbarheden CVE-2023-52441 skyldes manglende nødvendig kontrol af inddata ved behandling af SMB2-forbindelsesanmodninger.

Sårbarhederne CVE-2024-26594 og CVE-2024-26592 er blevet rettet i kernel 6.8 og i rettelsesopdateringerne til de tidligere stabile versioner 6.1.75, 6.6.14, 6.7.2. De øvrige sårbarheder er blevet rettet i kernel 6.5 og opdateringerne 5.15.145, 6.1.53, 6.4.16.

Afslutningsvis kan man nævne aktiviteten af det nye team af Linux-kerneludviklere, der er oprettet til at analysere forekomsten af sårbarheder og vurdere forbindelsen mellem de ændringer, der foretages i kernen, og sikkerhedsproblemer. I februar oprettede kerneludviklerne deres egen CNA-tjeneste (CVE Numbering Authority), som fik beføjelser til selvstændigt at tildele CVE-nummer til sårbarheder. Indtil da påhvilede tildelingen af CVE og analysen af forbindelserne mellem rettelser og potentielle sårbarheder udviklerne af distributioner, og i kernen blev potentielle sårbarheder ikke markeret og blev betragtet på lige fod med almindelige rettelser. Resultaterne af det nye teams arbejde har overgået alle forventninger — dagligt bliver der markeret op til flere dusin nye sårbarheder i kernen, som tidligere ikke blev betragtet som sikkerhedsproblemer. For eksempel, den 26. marts blev der tildelt nye CVE-identifier til 14 sårbarheder, der tidligere ikke blev betragtet som sikkerhedsproblemer, og den 25. marts blev der markeret 41 sårbarheder.

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