Va ser identificada una vulnerabilitat en GDM

Un investigador de seguretat de GitHub va donar a conèixer fa poc que ha identificat una vulnerabilitat (CVE-2020-16125) en GNOME Display Manager (GDM), que és responsable de mostrar la pantalla d'inici de sessió.

Combinat amb una altra vulnerabilitat en el servei de seguiment de comptes (accounts-daemon), el problema permet que el codi s'executi com a root.  La vulnerabilitat està associada amb el llançament incorrecte de la utilitat de configuració inicial si és impossible accedir a el servei de dimoni de comptes a través de DBus.

Sobre la vulnerabilitat

Un usuari sense privilegis pot fer que el procés de accounts-daemon es bloquegi o pengi, el que crearà les condicions perquè la utilitat gnome-initial-setup s'executi des GDM, a través de la qual un nou usuari pot registrar-se com a membre de el grup suo, és a dir, tenir la capacitat d'executar programes com a root.

Típicament, GDM crida a gnome-initial-setup per establir el primer usuari si no hi ha comptes en el sistema. La verificació de l'existència de comptes es realitza contactant a accounts-daemon. Si el procés especificat falla, GDM assumeix que falten els comptes i inicia el procés de configuració inicial.

L'investigador va identificar dues formes d'interrompre el procés dimoni-accounts: La primera (CVE-2020-16126) es deu a un restabliment de privilegis incorrectes i la segona (CVE-2020-16127) error a l'processar un arxiu «.pam_environment».

A més, es va trobar una altra vulnerabilitat en dimoni-accounts (CVE-2018-14036) causada per verificacions incorrectes de rutes d'arxius i que permet llegir el contingut d'arxius arbitraris en el sistema.

Les vulnerabilitats en accounts-daemon són causades per canvis realitzats pels desenvolupadors d'Ubuntu i no apareixen en el codi principal de accounts-daemon de el projecte freedesktop i el paquet de Debian.

El problema CVE-2020-16127 està present en un pegat agregat en Ubuntu que implementa la funció is_in_pam_environment, que llegeix el contingut de l'arxiu .pam_environment de directori d'inici de l'usuari. Si teniu un enllaç simbòlic a / dev / zero en lloc d'aquest arxiu, el procés de dimoni de comptes es bloqueja en infinites operacions de lectura i deixa de respondre a les sol·licituds a través d'DBus.

És inusual que una vulnerabilitat en un sistema operatiu modern sigui tan fàcil d'explotar. En algunes ocasions, he escrit milers de línies de codi per aprofitar una vulnerabilitat. 

La majoria dels gestes moderns involucren trucs complicats, com fer servir una vulnerabilitat de corrupció de memòria per falsificar objectes falsos en el munt, o reemplaçar un fitxer amb un enllaç simbòlic amb una precisió de microsegons per explotar una vulnerabilitat TOCTOU. 

Així que en aquests dies és relativament rar trobar una vulnerabilitat que no requereixi habilitats de codificació per explotar-la. També crec que la vulnerabilitat és fàcil d'entendre, encara que no té coneixement previ de com funciona Ubuntu o experiència en investigació de seguretat.

La vulnerabilitat CVE-2020-16126 és causada per un altre pegat que restableix els privilegis de l'usuari actual mentre processa algunes trucades DBus (per exemple, org.freedesktop.Accounts.User.SetLanguage).

El procés de dimoni de comptes s'executa normalment com a root, el que evita que un usuari normal enviï senyals.

Però gràcies a l'pegat agregat, els privilegis de l'procés es poden restablir i l'usuari pot finalitzar aquest procés enviant un senyal. Per realitzar un atac, només cal crear les condicions per eliminar privilegis (RUID) i enviar un senyal SIGSEGV o SIGSTOP a el procés de dimoni de comptes.

L'usuari finalitza la sessió gràfica i es dirigeix ​​a la consola de text (Ctrl-Alt-F1).
Una vegada que finalitza la sessió gràfica, GDM intenta mostrar la pantalla d'inici de sessió, però es bloqueja a l'intentar obtenir una resposta de accounts-daemon.

Els senyals SIGSEGV i SIGCONT s'envien des de la consola a el procés de dimoni de comptes, el que fa que es bloquegi.

També pot enviar senyals abans de sortir de la sessió gràfica, però ho ha de fer amb un retard per tenir temps de finalitzar la sessió i abans que s'enviï el senyal, GDM va tenir temps de començar.

La sol·licitud a el dimoni de comptes en GDM falla i GDM crida a la utilitat gnome-initial-setup, en la interfície és suficient per crear un nou compte.

La vulnerabilitat està corregida en GNOME 3.36.2 i 3.38.2. L'explotació de la vulnerabilitat s'ha confirmat en Ubuntu i els seus derivats.

font: https://securitylab.github.com


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.