Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-3560-exploit — CVE-2021-3560 — Exploit d'élévation de privilèges de Polkit via une condition de concurrence D-Bus d'accounts-daemon | Kitploit
Outils/GitHubGitHub/jeanback1/cve-2021-3560-exploit
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubjeanback1/cve-2021-3560-exploit

CVE-2021-3560-exploit

CVE-2021-3560 — Exploit d'élévation de privilèges de Polkit via une condition de concurrence D-Bus d'accounts-daemon

Voir le dépôt
il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2021-3560 — Élévation de privilèges Polkit

CVE-2021-3560 est une vulnérabilité locale d'élévation de privilèges dans Polkit (anciennement PolicyKit), le cadre d'autorisation utilisé par les environnements de bureau Linux. Un attaquant local non privilégié peut exploiter une condition de course dans l'interface D-Bus accounts-daemon pour créer un utilisateur privilégié, définir son mot de passe et finalement obtenir un accès root.


Comment ça fonctionne

Contexte : Polkit + accounts-daemon

accounts-daemon (org.freedesktop.Accounts) est un service D-Bus système qui gère les comptes utilisateurs (création, suppression, changements de mot de passe, etc.). Il expose des méthodes telles que :

MéthodeAction
CreateUserCrée un nouvel utilisateur système
SetPasswordDéfinit le mot de passe de l'utilisateur
DeleteUserSupprime un utilisateur

Ces opérations nécessitent une autorisation. Lorsqu'un appel D-Bus arrive, Polkit se situe entre l'appelant et accounts-daemon :

root@kitploit:~
Caller  →  D-Bus  →  Polkit (authorization check)  →  accounts-daemon (action)

Polkit décide si l'appelant a la permission et, le cas échéant, transmet la requête à accounts-daemon pour exécution.

La condition de course

La vulnérabilité est une course TOCTOU (Time Of Check, Time Of Use). Voici l'idée clé :

  1. Un appel de méthode D-Bus est envoyé à accounts-daemon (par exemple CreateUser).
  2. Polkit le reçoit et effectue la vérification d'autorisation — s'appuyant souvent sur une boîte de dialogue d'agent polkit qui expire, renvoyant une réponse "non autorisé". Cependant, à cause d'un bug, la gestion du délai d'expiration/des erreurs dans polkit traite incorrectement certaines conditions d'erreur comme des succès ou laisse le traitement côté démon dans un état partiellement autorisé.
  3. Si l'appel D-Bus est tué au moment précis — après que la décision d'autorisation de Polkit a été prise mais avant que accounts-daemon ait fini de traiter — la création de l'utilisateur aboutit sans authentification appropriée, mais l'enregistrement de l'utilisateur se retrouve incomplet (par exemple, pas de mot de passe, pas de répertoire personnel).
  4. L'attaquant peut ensuite utiliser la même course pour appeler SetPassword sur l'utilisateur nouvellement créé (mais non authentifié), ou l'état incomplet lui-même accorde des privilèges élevés.

En bref : tuez la requête au bon moment et vous contournez l'authentification.

Ce que fait l'exploit

Ce script exploit.sh automatise toute la chaîne d'attaque :


Utilisation

root@kitploit:~
# Clone the repository
git clone https://github.com/Jeanback1/CVE-2021-3560.git
cd CVE-2021-3560

# Make the exploit executable
chmod +x exploit.sh

# Run it
./exploit.sh

Une fois l'exploit terminé, vous disposerez d'un shell root :

root@kitploit:~
whoami
# root

Exemple de sortie

Exécution de l'exploit


Versions concernées

ComposantConcerné
polkit≤ 0.119 (non corrigé)
accounts-daemon (accountsservice)Toutes les versions utilisant polkit affecté

La vulnérabilité a été corrigée dans polkit 0.120 et versions ultérieures.

Distributions corrigées (liste non exhaustive) :

  • Ubuntu 20.04+ (avec les mises à jour de sécurité après juin 2021)
  • Debian 11+ (avec les mises à jour de sécurité)
  • RHEL 8+ / CentOS 8+ (avec erratum)
  • Fedora 34+

Avertissement

Ce dépôt est destiné uniquement à la recherche en sécurité éducative et autorisée. N'utilisez pas cet exploit sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester. L'auteur décline toute responsabilité en cas d'utilisation abusive.

Télécharger l’outil
ÉtapeAction
1. Calibrage temporelUtilise un appel factice CreateUser("nobody") pour mesurer la durée de l'aller-retour D-Bus, en calculant la "fenêtre de kill"
2. Création de l'utilisateurEnvoie un appel CreateUser pour un nom d'utilisateur choisi, le lance en arrière-plan, attend la fenêtre calculée, puis le tue — exploitant la course pour créer un utilisateur non autorisé
3. Définition du mot de passeUne fois que l'utilisateur existe (dans un état incomplet), envoie un appel SetPassword avec la même technique de course pour attribuer un mot de passe connu
4. Élévation de privilègesUtilise su pour passer au nouvel utilisateur, exécute sudo (qui fonctionne parce que l'utilisateur a été créé via un chemin d'autorisation contourné), copie /bin/bash vers /var/tmp/bash avec SUID root, et lance un shell root