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-2025-12748 — Preuve de concept pour CVE-2025-12748, une vulnérabilité de déni de service dans le traitement XML de libvirt qui contourne les contrôles ACL, permettant l'épuisement des ressources. | Kitploit
Outils/GitHubGitHub/teresh1/cve-2025-12748
Sécurité de l'Infrastructure CloudAnalyse des VulnérabilitésExploitationApprentissage et Éducation
GitHubteresh1/cve-2025-12748

CVE-2025-12748

Preuve de concept pour CVE-2025-12748, une vulnérabilité de déni de service dans le traitement XML de libvirt qui contourne les contrôles ACL, permettant l'épuisement des ressources.

Voir le dépôt
12il y a 10 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-2025-12748

Eng Rus

  • Crédit : Svyatoslav Tereshin (@TERESH1), Artem Mukhin (@saladosss)
  • Problèmes : #687, #825

English

Description

Un problème a été découvert dans la procédure de traitement du fichier XML.

Le traitement du contenu du fichier est effectué avant la vérification des ACL. Cela permet à un utilisateur disposant de permissions limitées de soumettre un fichier XML spécialement conçu qui peut entraîner une consommation excessive de ressources, conduisant à une potentielle attaque par déni de service (DoS).

Configuration de l'environnement

  1. OS : serveur Alt Linux P10
  2. Installez et configurez libvirt/qemu conformément à l'article (en russe)
  • résumé en anglais :
root@kitploit:~
apt-get install libvirt libvirt-kvm libvirt-qemu
gpasswd -a user vmusers
systemctl enable --now libvirtd
  1. Dans /etc/libvirt/libvirtd.conf, remplacez le contenu par :
root@kitploit:~
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
unix_sock_group = "vmusers"
auth_tcp = "none"
access_drivers = ["polkit"]
min_workers = 1
max_workers = 1
prio_workers = 1
admin_min_workers = 1
admin_max_workers = 1

log_outputs="1:file:/var/log/libvirt/libvirtd.log"
log_level = 1
  1. Ajoutez une règle pour polkit (/etc/polkit-1/rules.d/50-libvirt-user.rules) :
root@kitploit:~
polkit.addRule(function(action, subject) {
    polkit.log("action=" + action);
    polkit.log("subject=" + subject);
    if ((action.id == "org.libvirt.api.domain.write" || action.id == "org.libvirt.api.domain.save") &&
        subject.user == "user") {
        return polkit.Result.NO;
    }
    else {
        return polkit.Result.YES;
    }
})
  1. Redémarrez les services : systemctl restart libvirtd polkit

Reproduction

Tentative d'accès à libvirt avec un fichier XML valide :

root@kitploit:~
virsh --connect qemu://system define ./test.xml

L'erreur suivante sera reçue :

root@kitploit:~
error: Failed to define domain from ./test.xml
error: access denied: access denied "QEMU"

Et le journal polkit correspondant :

root@kitploit:~
polkitd[611708]: <no filename>:2: action=[Action id='org.libvirt.unix.manage']
polkitd[611708]: <no filename>:3: subject=[Subject pid=613904 user='user' groups=user,wheel,vmusers,docker seat=null session='55525' local=false active=true]
polkitd[611708]: <no filename>:2: action=[Action id='org.libvirt.api.connect.getattr' connect_driver='QEMU']
polkitd[611708]: <no filename>:3: subject=[Subject pid=613904 user='user' groups=user,wheel,vmusers,docker seat=null session='55525' local=false active=true]
polkitd[611708]: Unregistered Authentication Agent for unix-process:613904:1401403695 (system bus name :1.113770, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ru_RU.UTF-8) (disconnected from bus)
polkitd[611708]: <no filename>:2: action=[Action id='org.libvirt.api.domain.write' domain_name='test-vm' connect_driver='QEMU' domain_uuid='123e4567-e89b-12d3-a456-426614174000']
polkitd[611708]: <no filename>:3: subject=[Subject pid=613904 user='user' groups=user,wheel,vmusers,docker seat=null session='55525' local=false active=true]

Tentative d'accès à libvirt avec un fichier XML malveillant :

root@kitploit:~
virsh --connect qemu://system define ./oom.xml

Le journal sera vide en raison du blocage du serveur, et une augmentation de la consommation de ressources par libvirtd peut être observée dans top.

Руссский

Description

Un problème a été découvert lors du traitement du fichier XML.

Le traitement du contenu du fichier est effectué avant la vérification des ACL. Cela permet à un utilisateur disposant de droits limités d'envoyer un fichier XML spécialement conçu qui peut entraîner une consommation excessive de ressources, conduisant à une potentielle attaque par déni de service (DoS).

Configuration de l'environnement

  1. OS : serveur Alt Linux P10
  2. Installez/configurez libvirt/qemu selon l'article
  3. Dans /etc/libvirt/libvirtd.conf, remplacez le texte par :
root@kitploit:~
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
unix_sock_group = "vmusers"
auth_tcp = "none"
access_drivers = ["polkit"]
min_workers = 1
max_workers = 1
prio_workers = 1
admin_min_workers = 1
admin_max_workers = 1

log_outputs="1:file:/var/log/libvirt/libvirtd.log"
log_level = 1
  1. Ajoutez une règle pour polkit (/etc/polkit-1/rules.d/50-libvirt-user.rules) :
root@kitploit:~
polkit.addRule(function(action, subject) {
    polkit.log("action=" + action);
    polkit.log("subject=" + subject);
    if ((action.id == "org.libvirt.api.domain.write" || action.id == "org.libvirt.api.domain.save") &&
        subject.user == "user") {
        return polkit.Result.NO;
    }
    else {
        return polkit.Result.YES;
    }
})
  1. Redémarrez : systemctl restart libvirtd polkit

Reproduction

Tentative d'accès à libvirt avec un fichier XML valide :

root@kitploit:~
virsh --connect qemu://system define ./test.xml

L'erreur suivante sera reçue :

root@kitploit:~
ошибка: Не удалось создать описание домена на основе ./test.xml
ошибка: доступ запрещен: доступ запрещен "QEMU"

Et le journal polkit correspondant :

root@kitploit:~
polkitd[611708]: <no filename>:2: action=[Action id='org.libvirt.unix.manage']
polkitd[611708]: <no filename>:3: subject=[Subject pid=613904 user='user' groups=user,wheel,vmusers,docker seat=null session='55525' local=false active=true]
polkitd[611708]: <no filename>:2: action=[Action id='org.libvirt.api.connect.getattr' connect_driver='QEMU']
polkitd[611708]: <no filename>:3: subject=[Subject pid=613904 user='user' groups=user,wheel,vmusers,docker seat=null session='55525' local=false active=true]
polkitd[611708]: Unregistered Authentication Agent for unix-process:613904:1401403695 (system bus name :1.113770, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ru_RU.UTF-8) (disconnected from bus)
polkitd[611708]: <no filename>:2: action=[Action id='org.libvirt.api.domain.write' domain_name='test-vm' connect_driver='QEMU' domain_uuid='123e4567-e89b-12d3-a456-426614174000']
polkitd[611708]: <no filename>:3: subject=[Subject pid=613904 user='user' groups=user,wheel,vmusers,docker seat=null session='55525' local=false active=true]

Tentative d'accès à libvirt avec un fichier XML malveillant :

root@kitploit:~
virsh --connect qemu://system define ./oom.xml

Le journal sera vide en raison du blocage du serveur ; dans top, on peut constater l'augmentation des ressources consommées par libvirtd.

Télécharger l’outil