X.org privilege escalation : METTEZ À JOUR

Salut,

Résumé rapide : un vieux buffer overflow qui traîne dans toutes les versions de X11 depuis 22 ans (!) vient d’être trouvé. theregister.co.uk/2014/01/09 … ation_bug/ [anglais]
Chez Debian ça concerne le paquet [mono]libxfont1[/mono].

N’importe quel utilisateur connecté en graphique est en mesure de devenir root.
Sans compter tout un tas d’autres bugs moins graves mais bien chiants quand même.

Pour unstable, la correction est déjà disponible (version 1:1.4.7-1).
Pour stable ça devrait être bon aussi (version 1:1.4.5-3, sans pouvoir confirmer la correction du bug car je trouve pas le changelog pour cette version).

Pour testing par contre, comme d’hab, le paquet va mettre une plombe pour descendre depuis unstable donc la mise à jour est à faire immédiatement avec le paquet unstable : [mono]aptitude install libxfont1/unstable[/mono] (vérifiez que c’est bien la 1:1.4.7-1 qui s’installe).

:006

aussi disponible sur squeeze 8)

Y veut pas

[code]Les paquets suivants seront mis à jour :
libxfont1
1 paquets mis à jour, 0 nouvellement installés, 0 à enlever et 127 non mis à jour.
Il est nécessaire de télécharger 126 ko d’archives. Après dépaquetage, 49,2 ko seront libérés.
Voulez-vous continuer ? [Y/n/?]
Prendre : 1 http://ftp.debian.org/debian/ sid/main libxfont1 amd64 1:1.4.7-1 [126 kB]
126 ko téléchargés en 0s (327 ko/s)
/usr/lib/ruby/vendor_ruby/debian.rb:24:in require': no such file to load -- debian_version (LoadError) from /usr/lib/ruby/vendor_ruby/debian.rb:24 from /usr/sbin/apt-listbugs:289:inrequire’
from /usr/sbin/apt-listbugs:289
E: Le sous-processus /usr/sbin/apt-listbugs apt a renvoyé un code d’erreur (1)
E: Failure running script /usr/sbin/apt-listbugs apt
Échec de l’installation d’un paquet. Tentative de réparation :

ricardo@ordibureau:~$

[/code]

Ça a plutôt l’air d’être lié à apt-listbugs (et/ou ruby) qu’autre chose. Tu arrives à installer/MAJ d’autres paquets que [mono]libxfont1[/mono] ?

Ca me rappelle un problème d’il y a quelques mois, que j’avais résolu en desisntallant temporairement apt-listbugs.

Le fil qui traitait de ce sujet est ici : apt-listbugs-ruby-t44921.html

:006

Mission accomplie ! À part le vieux bug de keyboard-configuration que je traîne depuis des semaines, tout est passé (aptitude safe-upgrade seulement).

apt-listbugs serait-il buggé ? :laughing:

[quote=“dric64”]Ca me rappelle un problème d’il y a quelques mois, que j’avais résolu en desisntallant temporairement apt-listbugs.

Le fil qui traitait de ce sujet est ici : debian-fr.org/apt-listbugs-ruby-t44921.html

:006[/quote]
C’était bien ça, j’ai suivi le fil indiqué, il m’a désinstallé apt-listbugs et ensuite :

aptitude install libxfont1/unstable Les paquets suivants seront ENLEVÉS : libruby1.8{u} ruby-debian{u} ruby-gettext{u} ruby-httpclient{u} ruby-locale{u} ruby-soap4r{u} ruby-text{u} ruby-xmlparser{u} ruby1.8{u} Les paquets suivants seront mis à jour : libxfont1
Vérifié :

acp libxfont1 libxfont1: Installé : 1:1.4.7-1 Candidat : 1:1.4.7-1
Du coup, je ne sais plus ce que je dois faire : réinstaller apt-listbug ou pas :question:

EDIT :
En fait, j’ai réinstallé, on verra demain soir lors de ma MAJ hebdo.

Surveille les versions de ruby, des que t’auras une mise à jour, tu réinstalles apt-listbugs.
Mais il me semblait que dans le fil que je t’ai donné, quelqu’un avait une solution moins bourrin que de desinstaller aptlistbugs, y avait un fichier de conf à modifier pour le désactiver temporairement.

Moi j’ai réinstallé apt-listbugs en faisant bien attention que la version de ruby ne soit pas ruby1.8 (J’ai ruby1.9.1)

Il ne devrez pas y avoir un “segmentation fault” dans ces cas là? Ca ferait crasher X11 et basta.

Si je comprends bien, les “seg fault” apparaissent si on sort de la mémoire allouée au programme.
Tant qu’on reste dans cet espace, on a interêt à surveiller les écritures mémoire du coup… surtout si ça tourne en root.

1.9.3 installée chez moi ce soir.

Dans les grandes lignes : un buffer overflow permet de réécrire les données présentes sur la pile, dont l’adresse de retour de la fonction.
Si l’attaque est faite n’importe comment, effectivement ça n’ira pas plus loin qu’un segfault, ça va bêtement planter.
Mais c’est pas très difficile non plus d’injecter du code exécutable (au lieu de données aléatoires) et de faire pointer l’adresse de retour vers ce code. À partir de là, quand la fonction se termine et veut retourner à son appelant, en réalité elle “retourne” à ton code injecté qui s’exécute alors avec les droits du process.

Bref, un buffer overflow permet généralement (il y a des exceptions) l’exécution de code arbitraire (à discrétion de l’attaquant), et potentiellement une élévation de privilèges selon les droits du process attaqué. :wink:
Ce qui est le cas ici puisque certains composants du serveur X.org – dont celui où se trouve la faille – tournent en root pour pouvoir accéder à la carte graphique.

Le paquet est entré dans Testing pour info.

Ça a été rapide pour une fois dis donc. :open_mouth:

Je n’ai rien à faire sur le serveur sans graphique ?

ecoloserv:~# apt-cache policy libxfont1 libxfont1: Installé : (aucun) Candidat : 1:1.4.5-3 Table de version : 1:1.4.5-3 0 500 http://security.debian.org/ wheezy/updates/main amd64 Packages 1:1.4.5-2 0 500 http://ftp.fr.debian.org/debian/ wheezy/main amd64 Packages

A partir du moment où Xorg n’est pas lancé (et pas installé de surcroit), non je crois que tu n’as rien à faire.