Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-12748 — Prueba de concepto para CVE-2025-12748, una vulnerabilidad de denegación de servicio en el procesamiento XML de libvirt que omite las comprobaciones de ACL, lo que permite el agotamiento de recursos. | Kitploit
Herramientas/GitHubGitHub/teresh1/cve-2025-12748
Seguridad de Infraestructura en la NubeAnálisis de VulnerabilidadesExplotaciónAprendizaje y Educación
GitHubteresh1/cve-2025-12748

CVE-2025-12748

Prueba de concepto para CVE-2025-12748, una vulnerabilidad de denegación de servicio en el procesamiento XML de libvirt que omite las comprobaciones de ACL, lo que permite el agotamiento de recursos.

Ver Repositorio
12hace 10 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-12748

Eng Rus

  • Créditos: Svyatoslav Tereshin (@TERESH1), Artem Mukhin (@saladosss)
  • Incidencias: #687, #825

English

Descripción

Se descubrió un problema en el procedimiento de procesamiento de archivos XML.

El procesamiento del contenido del archivo se realiza antes de la comprobación de ACL. Esto permite que un usuario con permisos limitados envíe un archivo XML especialmente diseñado que puede provocar un consumo excesivo de recursos, lo que conduce a un posible ataque de denegación de servicio (DoS).

Configuración del entorno

  1. SO: servidor Alt Linux P10
  2. Instalar y configurar libvirt/qemu según el artículo (idioma ruso)
  • resumen en inglés:
root@kitploit:~
apt-get install libvirt libvirt-kvm libvirt-qemu
gpasswd -a user vmusers
systemctl enable --now libvirtd
  • En /etc/libvirt/libvirtd.conf, reemplaza el contenido por:
  • 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. Añade una regla para 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. Reinicia los servicios: systemctl restart libvirtd polkit

    Reproducción

    Intento de acceso a libvirt con un archivo XML válido:

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

    Se recibirá el siguiente error:

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

    Y el log correspondiente de polkit:

    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]
    

    Intento de acceso a libvirt con un archivo XML malicioso:

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

    El log estará vacío debido a que el servidor se cuelga; se puede observar un mayor consumo de recursos por parte de libvirtd en top.

    Руссский

    Descripción

    Se detectó un problema en el procesamiento del archivo xml.

    El procesamiento del contenido del archivo se realiza antes de la comprobación de ACL. Esto permite que un usuario con permisos limitados envíe un archivo XML especialmente formado que puede provocar un consumo excesivo de recursos, lo que conduce a un posible ataque de denegación de servicio (DoS).

    Configuración del entorno

    1. SO: servidor Alt Linux P10
    2. instalar/configurar libvirt/qemu según el artículo
    3. en /etc/libvirt/libvirtd.conf, reemplazar el texto por:
    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. añadir una regla para 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. reiniciar: systemctl restart libvirtd polkit

    Reproducción

    Acceso a libvirt con un archivo xml válido:

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

    Se obtendrá el siguiente error:

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

    Y el log correspondiente de polkit:

    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]
    

    Acceso a libvirt con un archivo xml malicioso:

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

    El log estará vacío debido al cuelgue del servidor; en top se puede comprobar el aumento de los recursos consumidos por libvirtd.

    Descargar herramienta