CVE-2026-41651
PackageKit vulnérable à une course TOCTOU sur les indicateurs de transaction conduisant à l'installation arbitraire de paquets en tant que root
- Publié
- 22 avr. 2026
- Mise à jour
- 15 juil. 2026
- Attribution de CNA
- GitHub_M
- Preuve observée
- 25 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HFaible · 30 prochains jours
- Percentile
- 39,0 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
PackageKit est une couche d'abstraction D-Bus qui permet à l'utilisateur de gérer les paquets de manière sécurisée grâce à une API multi-distributions et multi-architectures. PackageKit, entre les versions 1.0.2 et 1.3.4 incluses, est vulnérable à une condition de concurrence de type time-of-check time-of-use (TOCTOU) sur les indicateurs de transaction, permettant à des utilisateurs non privilégiés d'installer des paquets en tant que root, ce qui conduit à une élévation de privilèges locale. Ce problème est corrigé dans la version 1.3.5. Un utilisateur local non privilégié peut installer des paquets RPM arbitraires en tant que root, y compris exécuter des scriptlets RPM, sans authentification. La vulnérabilité est une condition de concurrence TOCTOU sur `transaction->cached_transaction_flags` combinée à un garde-fou silencieux de machine à états qui rejette les transitions arrière illégales tout en laissant les indicateurs corrompus en place. Trois bogues existent dans `src/pk-transaction.c` : 1. Écrasement inconditionnel des indicateurs (ligne 4036) : `InstallFiles()` écrit les indicateurs fournis par l'appelant dans `transaction->cached_transaction_flags` sans vérifier si la transaction a déjà été autorisée/démarrée. Un second appel écrase aveuglément les indicateurs même pendant que la transaction est en cours d'exécution (RUNNING). 2. Rejet silencieux des transitions d'état (lignes 873–882) : `pk_transaction_set_state()` rejette silencieusement les transitions d'état arrière (par exemple `RUNNING` → `WAITING_FOR_AUTH`) mais l'écrasement des indicateurs à l'étape 1 a déjà eu lieu. La transaction continue de s'exécuter avec des indicateurs corrompus. 3. Lecture tardive des indicateurs au moment de l'exécution (lignes 2273–2277) : le rappel d'inactivité du planificateur lit cached_transaction_flags au moment de la répartition, et non au moment de l'autorisation. Si les indicateurs ont été écrasés entre l'autorisation et l'exécution, le backend voit les indicateurs de l'attaquant.
Sources
11Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.