Er is een kwetsbaarheid geïdentificeerd in GDM

Een beveiligingsonderzoeker door GitHub maakte het bekend kort geleden u heeft een kwetsbaarheid geïdentificeerd (CVE-2020-16125) in GNOME Display Manager (GDM), die verantwoordelijk is voor het weergeven van het inlogscherm.

Gecombineerd met een andere kwetsbaarheid in de accountvolgservice (accounts-daemon), door het probleem kan de code als root worden uitgevoerd.  Het beveiligingslek houdt verband met het onjuist starten van het eerste configuratieprogramma als het onmogelijk is om toegang te krijgen tot de accountdaemon-service via DBus.

Over kwetsbaarheid

Een onbevoegde gebruiker kan het accounts-daemon-proces laten crashen of hang op, wat zal de voorwaarden scheppen om het hulpprogramma gnome-initial-setup uit te voeren vanuit GDM, waarmee een nieuwe gebruiker zich kan registreren als lid van de sudo-groep, dat wil zeggen, de mogelijkheid hebben om programma's als root uit te voeren.

Gewoonlijk GDM roept gnome-initial-setup aan om de eerste gebruiker in te stellen als er geen accounts in het systeem zijn. Verificatie van het bestaan ​​van accounts wordt gedaan door contact op te nemen met accounts-daemon. Als het gespecificeerde proces mislukt, gaat GDM ervan uit dat de accounts ontbreken en start het eerste configuratieproces.

De onderzoeker identificeerde twee manieren om het proces van daemon-accounts te verstoren- De eerste (CVE-2020-16126) is te wijten aan een onjuiste reset van privileges en de tweede (CVE-2020-16127) fout tijdens het verwerken van een ".pam_environment" -bestand.

Bovendien heeft een andere kwetsbaarheid werd gevonden in daemon-accounts (CVE-2018-14036) veroorzaakt door onjuiste bestandspadcontroles en waardoor de inhoud van willekeurige bestanden op het systeem kan worden gelezen.

De kwetsbaarheden in accounts-daemon worden veroorzaakt door wijzigingen die zijn aangebracht door Ubuntu-ontwikkelaars en komen niet voor in de hoofdaccounts-daemon-code van het FreeDesktop-project en het Debian-pakket.

Het probleem CVE-2020-16127 is aanwezig in een patch die is toegevoegd in Ubuntu en die de functie is_in_pam_environment implementeert, die de inhoud van het .pam_environment-bestand uit de homedirectory van de gebruiker leest. Als je een symbolische link naar / dev / zero plaatst in plaats van dit bestand, hangt het accountdaemon-proces aan oneindige leesbewerkingen en reageert het niet meer op verzoeken via DBus.

Het is ongebruikelijk dat een kwetsbaarheid in een modern besturingssysteem zo gemakkelijk te misbruiken is. Soms heb ik duizenden regels code geschreven om misbruik te maken van een kwetsbaarheid. 

De meeste moderne exploits omvatten gecompliceerde trucs, zoals het gebruik van een kwetsbaarheid voor geheugenbeschadiging om nepobjecten in de heap te vervalsen, of het vervangen van een bestand door een symbolische link naar precisie van een microseconde om misbruik te maken van een TOCTOU-kwetsbaarheid. 

Tegenwoordig is het dus relatief zeldzaam om een ​​kwetsbaarheid te vinden waarvoor geen codeervaardigheden nodig zijn om misbruik te maken. Ik denk ook dat de kwetsbaarheid gemakkelijk te begrijpen is, zelfs als je geen voorkennis hebt van hoe Ubuntu werkt of ervaring hebt met beveiligingsonderzoek.

De kwetsbaarheid van CVE-2020-16126 wordt veroorzaakt door een andere patch die de rechten van de huidige gebruiker herstelt tijdens het verwerken van enkele DBus-aanroepen (bijvoorbeeld org.freedesktop.Accounts.User.SetLanguage).

Het accountdaemon-proces draait normaal als root, waardoor een normale gebruiker geen signalen kan verzenden.

Maar dankzij de toegevoegde patch, procesprivileges kunnen worden gereset en de gebruiker kan dit proces beëindigen door een signaal te sturen. Om een ​​aanval uit te voeren, creëert u eenvoudig de voorwaarden om privileges (RUID) te verwijderen en stuurt u een SIGSEGV- of SIGSTOP-signaal naar het accountdaemon-proces.

De gebruiker beëindigt de grafische sessie en gaat naar de tekstconsole (Ctrl-Alt-F1).
Nadat de grafische sessie is beëindigd, probeert GDM het inlogscherm weer te geven, maar blijft hangen bij het proberen om een ​​reactie van de accounts-daemon te krijgen.

De SIGSEGV- en SIGCONT-signalen worden van de console naar het accountdaemon-proces gestuurd, waardoor het vastloopt.

U kunt ook signalen verzenden voordat u de grafische sessie verlaat, maar u moet dit met een vertraging doen om tijd te hebben om de sessie te beëindigen en voordat het signaal wordt verzonden, heeft GDM tijd gehad om te starten.

Het verzoek aan de accountdaemon in GDM mislukt en GDM roept het hulpprogramma gnome-initial-setup aan, in wiens interface het voldoende is om een ​​nieuw account aan te maken.

De kwetsbaarheid is opgelost in GNOME 3.36.2 en 3.38.2. Exploitatie van de kwetsbaarheid is bevestigd in Ubuntu en zijn afgeleiden.

bron: https://securitylab.github.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.