sudo root-sårbarhed, der påvirker Linux Mint og Elementary OS

I værktøjet sudo, bruges til at organisere udførelsen af ​​kommandoer på vegne af andre brugere, identificeret sårbarhed (CVE-2019-18634), som giver dig mulighed for at øge dine privilegier i systemet til root-brugeren. Problemet dukker kun op siden udgivelsen af ​​sudo 1.7.1, når du bruger "pwfeedback"-indstillingen i filen /etc/sudoers, som er deaktiveret som standard, men aktiveret på nogle distributioner såsom Linux Mint og Elementary OS. Problem rettet i udgivelsen sudo 1.8.31, udgivet for et par timer siden. Sårbarheden forbliver uløst i distributionssæt.

"pwfeedback"-indstillingen muliggør visning af "*"-tegnet efter hvert indtastet tegn, når der indtastes en adgangskode. På grund af Fejl I implementeringen af ​​getln()-funktionen, defineret i tgetpass.c-filen, passer en for stor adgangskodestreng, der sendes via standardinputstrømmen (stdin) under visse betingelser, muligvis ikke ind i den tildelte buffer og overskriver andre data på stakken. Overløbet opstår, når du kører sudo-kode som root.

Essensen af ​​problemet er, at når du bruger specialtegnet ^U (line clearing) under input, og hvis skriveoperationen mislykkes, nulstiller koden, der er ansvarlig for at rydde output "*" tegnene, dataene på den tilgængelige bufferstørrelse, men ikke returner markøren til startværdiens nuværende position i bufferen. En anden faktor, der bidrager til udnyttelsen, er manglen på automatisk deaktivering af "pwfeedback"-tilstanden, når data ikke kommer fra terminalen, men gennem inputstrømmen (denne fejl gør det muligt at skabe betingelser for, at en registreringsfejl kan opstå, for eksempel på systemer med ensrettet unavngivne kanaler der opstår en fejl, når du forsøger at skrive til slutningen af ​​en læsekanal).

Da en angriber har fuldstændig kontrol over dataoverskrivning på stakken, er det ikke svært at skabe en udnyttelse, der giver ham mulighed for at eskalere sine privilegier til root. Problemet kan udnyttes af enhver bruger, uanset sudo-tilladelser eller brugerspecifikke indstillinger i sudoers. For at blokere problemet, skal du sørge for, at der ikke er nogen "pwfeedback"-indstilling i /etc/sudoers, og om nødvendigt deaktivere den ("Standard !pwfeedback"). For at kontrollere, om der er et problem, kan du køre koden:

$ perl -e ‘print((“A” x 100 . “\x{00}”) x 50)’ | sudo -S id
Adgangskode: Segmenteringsfejl

Kilde: opennet.ru

Tilføj en kommentar