In het hulpprogramma
Met de optie “pwfeedback” kunt u bij het invoeren van een wachtwoord het teken “*” weergeven na elk ingevoerd teken. Vanwege
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
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