Vérifier si sa Debian a la vulnérabilité pkexec (PolicyKit – Polkit)

Tags: #<Tag:0x00007f63f1229190>

Il y a une nouvelle d’une vulnérabilité avec pkexec qui touche de nombreuses distributions de Linux. J’ai une image Docker basée sur Debian 11 et je me demandais comment faire pour vérifier si cette vulnérabilité l’affectait.

Vous savez comment je pourrais procéder pour ce faire? :thinking:

A quel point ce bug est-il dangereux ?

Il est très dangereux. Cette vulnérabilité est facile à exploiter. Et, avec elle, n’importe quel utilisateur ordinaire peut obtenir les privilèges root sur un ordinateur vulnérable en exploitant cette vulnérabilité dans sa configuration par défaut. Comme Qualys l’a écrit dans sa description du problème, « cette vulnérabilité est le rêve devenu réalité d’un attaquant ».

pour un peu on a l’impression d’être chez hanouna.

Si on sait que Linux peut être attaqué, Solaris et d’autres systèmes Unix peuvent également être vulnérables. On sait cependant qu’OpenBSD ne peut pas être attaqué par des exploits utilisant cette vulnérabilité.

Solaris, sérieusement? le gars qui a écrit l’article devrait changer de métier.

mais zdnet, c’est comme commentcamarche en fait.

Plus serieusement, Qualys fait son business sur des alarmes de ce genre, mais dont l’exploitation n’est possible que par de véritables experts.
certes la mise est à faire dès qu’elle est disponible, mais un article qui se contente de parler du feu en se contentant de dire que ça brule, ce n’est que de la feuille de chou pour parler gentiment.

Ici c’est un peu plus sérieux: NVD - CVE-2021-4034

car comme toujrosu, quand une vulnérabilité existe, la première chose c’est comment on y accède.
pour celui ci, il faut déjà avoir un accès au système pour accéder à la fonction. ce qui en soit limité déjà pas mal les possibilités d’exploitations.

Quand à savoir si le système est affecté, c’est simple: la fonctionnalité est présente? elle n’est pas patché, alors la réponse est oui.
C’est comme pour le feu: est-il allumé? ai-je mis la main dedans? alors oui je vais me bruler.

et en passant, faites un ls -l /usr/bin/pkexec, est comme par hasar les droits d’accès sont de:…755.

voilà pourquoi je ne lis jamais zdnet.

Bonjour

Sur un système debian 11 (bullseye) qui est mis à jour il n’y a rien à craindre car ce problème a été corrigé dans la version 0.105-31+deb11u1 de policykit-1

michel@debbull:~$ apt policy policykit-1
policykit-1:
  Installé : 0.105-31+deb11u1
  Candidat : 0.105-31+deb11u1
 Table de version :
 *** 0.105-31+deb11u1 500
        500 https://security.debian.org/debian-security bullseye-security/main amd64 Packages
        100 /var/lib/dpkg/status
     0.105-31 500
        500 https://deb.debian.org/debian bullseye/main amd64 Packages
michel@debbull:~$ 
2 J'aime

11u1 Est-ce que ça veut dire 11.1? J’ai fait une recherche sur la notation mais, je n’ai pas trouvé cette information. Est-ce que quelqu’un peut expliquer?

Plus exactement c’est 4755

fp2@debpacha:~ $ l /usr/bin/pkexec
24 -rwsr-xr-x 1 root root 23448 13 janv. 20:32 /usr/bin/pkexec
fp2@debpacha:~ $ stat /usr/bin/pkexec
  Fichier : /usr/bin/pkexec
   Taille : 23448       Blocs : 48         Blocs d'E/S : 4096   fichier
Périphérique : fe03h/65027d     Inœud : 3086        Liens : 1
Accès : (4755/-rwsr-xr-x)  UID : (    0/    root)   GID : (    0/    root)
 Accès : 2022-01-28 21:17:24.658160815 +0100
Modif. : 2022-01-13 20:32:03.000000000 +0100
Changt : 2022-01-27 14:50:41.603319609 +0100
  Créé : 2022-01-27 14:50:28.443323830 +0100
fp2@debpacha:~ $ file /usr/bin/pkexec
/usr/bin/pkexec: setuid ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2bc18f47bb78d65eb26c8f6548d0b3f099a1a5f3, for GNU/Linux 3.2.0, stripped
fp2@debpacha:~ $

Il a bien l’attribut setuid

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac

1 J'aime

Voilà qui change tout. Donc, il faut faire très attention avec cet exécutable.

Non, il faut vérifier que le paquet policykit-1 est à jour :
https://security-tracker.debian.org/tracker/CVE-2021-4034

Alors, j’ai vérifié:

apt list policykit-1
Listing... Done
policykit-1/stable-security 0.105-31+deb11u1 amd64

0.105-31+deb11u1 Donc, je suis protégé. Merci à tous.

Sous les anciennes versions, le patch est fait sous des numéros différents :

  • stretch (admin): 0.105-18+deb9u2 [ security ]

  • buster (admin): 0.105-25+deb10u1 [ security ]

  • bullseye (admin): 0.105-31

C’est normal, le versioning est dépendant des versions de distributions.

Bonsoir,

Comment se fait-il que j’aie deux lignes alors que je n’ai rien installé dans cette machine concernant i386 ???

$ apt list policykit-1
policykit-1/stable-security,now 0.105-31+deb11u1 amd64  [installé, automatique]
policykit-1/stable-security 0.105-31+deb11u1 i386 

Mon source.list est d’une banalité affligeante :

# 6 janvier 2022, passage de buster (10.11) à bullseye (11.2)

## dépot principal
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

## mises à jour "volatiles"
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

## mises à jour de sécurité
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

## virtualbox
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian/ bullseye contrib

Merci !

Bonjour

Donne le retour de la ligne de commande suivante :

grep -Env "^#|^$" /etc/apt/sources.list{,.d/*.list}

une installation multi architecture cachée quelque part ?
https://wiki.debian.org/fr/Multiarch

Bonjour,

/etc/apt/sources.list:37:deb http://deb.debian.org/debian bullseye main contrib non-free
/etc/apt/sources.list:38:deb-src http://deb.debian.org/debian bullseye main contrib non-free
/etc/apt/sources.list:41:deb http://deb.debian.org/debian bullseye-updates main contrib non-free
/etc/apt/sources.list:42:deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
/etc/apt/sources.list:45:deb http://security.debian.org/debian-security bullseye-security main contrib non-free
/etc/apt/sources.list:46:deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
/etc/apt/sources.list:53:deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian/ bullseye contrib
grep: /etc/apt/sources.list.d/*.list: Aucun fichier ou dossier de ce type

Voilà.
(perso, je trouve que ça ressemble comme deux gouttes d’eau à mon source.list)

Pas que je sache.

Oui, tant qu’il n’y a pas d’autres fichiers sources
dans le répertoire /etc/apt/sources.list.d/
le retour ne montre que les lignes
du fichier /etc/apt/sources.list
qui ne sont ni commentées ni vides,
sinon, le retour aurait été différent.

Il se trouve que vous avez ajouté l’architecture Intel 32 bits pour une raison inconnue

1& fp2@debpacha:~ 9m49s $ dpkg --print-foreign-architectures
i386
⏚ 1& fp2@debpacha:~ $

Vous n’en avez plus souvenir, mais il fut un temps où vous avez, directement ou indirectement, lancé la commande

dpkg --add-architecture i386

Pour ma part, je sais que c’était pour installer WinaMax sur wine32 ( wine:i386 )

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)

1 J'aime

Bien vu, PetitJean-de-Paname ! :
$ dpkg --print-foreign-architectures
i386
Y a-t-il moyen de faire marche arrière avec
dpkg --remove-architecture i386
?
Hé bien non, pas à mon niveau de connaissances. J’ai tenté, et bim ! :
$ dpkg --remove-architecture i386
dpkg: erreur: impossible de supprimer l'architecture « i386 » actuellement utilisée dans la base de données
Quelle base de données ? Nobody knows…

La base de donnée d’APT
Il faut la nettoyer d’abord, voir par exemple :

ou :
https://debian-facile.org/viewtopic.php?id=22231
en changeant amd64 en i386

1 J'aime

Merci pour cette réponse et ce lien, qui m’a été très utile, voir ci-après, car pendant que l’un rédigeait cette réponse, l’autre bidouillait, à l’ancienne :
Alors j’ai lancé synaptic et fait une recherche sur i386, puis j’ai parcouru la liste renvoyée et ai compté 27 entrées avec cette string.
Trois ne sont manifestement pas concernées, c’est libxvidcore4, linux-headers-5.10.0-10-amd64 et qemu-utils, mais « i386 » se trouve dans la description des paquets, aïe !

Je sélectionne la première entrée, clic-droit / sélectionner pour suppression complète m’en propose 23 en plus, que j’accepte, et je me retape la liste pour passer de Suppression à Suppression complète et incroyable mais vrai, sur deux paquets une boîte de dialogue me dit que supprimer ce paquet risque de rendre mon système inutilisable, texto !
suppression-complète
Ça concerne libcrypt1:i386 et libgcc-s1:i386.
Questions :

  • Pourquoi ça ne me l’a pas dit plus tôt ?
  • Si j’y vais comme ça (ie, sans suppression complète), ça ne va pas rendre mon système instable ?

Dans une machine virtuelle avec + ou - le même bullseye 11.2, une recherche de libcrypt dans synaptic montre un paquet libcrypt1 installé, avec la même version que celui en i386, et pareil pour libgcc-s1 vs libgcc-s1:i386.

Allez, je bascule sur Suppression complète ces deux-là, le message doit être une boulette, on verra bien…

Mais bon, « ils » font peur quand on clique sur « Appliquer » :
appliquer

et après « Appliquer » :
après-appliquer

Bref, « Valider » puis

$ apt list policykit-1
En train de lister... Fait
policykit-1/stable-security,now 0.105-31+deb11u1 amd64  [installé, automatique]
policykit-1/stable-security 0.105-31+deb11u1 i386

Bizarre bizarre, reboot à la Windows (tout va bien, « ils » nous font peur pour rien…) et

$ apt list policykit-1
En train de lister... Fait
policykit-1/stable-security,now 0.105-31+deb11u1 amd64  [installé, automatique]
policykit-1/stable-security 0.105-31+deb11u1 i386

Alors en avant les manips, merci à jweber pour son premier lien :
apt-get purge ".*:i386"
fait défiler à toute allure des milliers de lignes, puis au final

Le paquet « xwayland:i386 » n'est pas installé, et ne peut donc être supprimé <-- dernière ligne
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libgtksourceview-3.0-1 libgtksourceview-3.0-common libvpx5 libxfce4util-bin libxfce4util-common libxfce4util7 libxfconf-0-3 xfconf
Veuillez utiliser « apt autoremove » pour les supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Allez, apt autoremove pour enlever ces huit paquets, puis

$ dpkg --remove-architecture i386
$ apt list policykit-1
En train de lister... Fait
policykit-1/stable-security,now 0.105-31+deb11u1 amd64  [installé, automatique]
N: Il y a une version supplémentaire 1. Veuillez utiliser l'opérande « -a » pour la voir.
$ apt list policykit-1 -a
En train de lister... Fait
policykit-1/stable-security,now 0.105-31+deb11u1 amd64  [installé, automatique]
policykit-1/stable 0.105-31 amd64
(ligne vide)

Et voilà !
Merci à tous.

Bravo pour la patience !
J’avais eu un coup du même style sur une version précédente de Debian (Jessie je crois) suite à un essai de wine que j’ai viré très vite ! Mais je n’ai pas eu le courage de faire le ménage complet, j’ai attendu un changement de version pour tout réinstaller (ce qui est un peu ma philosophie en général).