sudo root-kwetsbaarheid die Linux Mint en Elementary OS treft

In het hulpprogramma sudo, gebruikt om de uitvoering van opdrachten namens andere gebruikers te organiseren, geïdentificeerd kwetsbaarheid (CVE-2019-18634), waarmee u uw rechten in het systeem kunt uitbreiden naar de rootgebruiker. Het probleem doet zich pas voor sinds de release van sudo 1.7.1 bij gebruik van de optie "pwfeedback" in het bestand /etc/sudoers, dat standaard is uitgeschakeld maar is ingeschakeld op sommige distributies zoals Linux Mint en Elementary OS. Probleem opgelost in release sudo 1.8.31, een paar uur geleden gepubliceerd. De kwetsbaarheid blijft onopgelost in distributiekits.

Met de optie “pwfeedback” kunt u bij het invoeren van een wachtwoord het teken “*” weergeven na elk ingevoerd teken. Vanwege Fouten Bij de implementatie van de functie getln(), gedefinieerd in het bestand tgetpass.c, past een te grote wachtwoordreeks die via de standaardinvoerstroom (stdin) wordt doorgegeven onder bepaalde omstandigheden mogelijk niet in de toegewezen buffer en overschrijft andere gegevens op de stapel. De overloop treedt op wanneer sudo-code als root wordt uitgevoerd.

De essentie van het probleem is dat bij gebruik van het speciale teken ^U (regel wissen) tijdens invoer en als de schrijfbewerking mislukt, de code die verantwoordelijk is voor het wissen van de uitvoertekens “*” de gegevens opnieuw instelt op de beschikbare buffergrootte, maar niet breng de aanwijzer terug naar de initiële waarde van de huidige positie in de buffer. Een andere factor die bijdraagt ​​aan de exploitatie is het ontbreken van automatische uitschakeling van de “pwfeedback”-modus wanneer gegevens niet van de terminal binnenkomen, maar via de invoerstroom (deze fout maakt het mogelijk voorwaarden te creëren voor het optreden van een opnamefout, bijvoorbeeld op systemen met unidirectioneel naamloze kanalen er treedt een fout op wanneer u probeert naar het einde van een leeskanaal te schrijven).

Omdat een aanvaller volledige controle heeft over het overschrijven van gegevens op de stack, is het niet moeilijk om een ​​exploit te creëren waarmee hij zijn privileges naar root kan escaleren. Het probleem kan door elke gebruiker worden uitgebuit, ongeacht sudo-machtigingen of gebruikersspecifieke instellingen in sudoers. Om het probleem te blokkeren, moet u ervoor zorgen dat er geen “pwfeedback”-instelling is in /etc/sudoers en, indien nodig, deze uitschakelen (“Defaults !pwfeedback”). Om te controleren of er een probleem is, kunt u de code uitvoeren:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Wachtwoord: Segmentatiefout

Bron: opennet.ru

Voeg een reactie