Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/teresh1/cve-2025-12748
Segurança de Infraestrutura em NuvemAnálise de VulnerabilidadesExploraçãoAprendizado e Educação
GitHubteresh1/cve-2025-12748

CVE-2025-12748

Prova de conceito para CVE-2025-12748, uma vulnerabilidade de negação de serviço no processamento XML do libvirt que ignora verificações de ACL, permitindo exaustão de recursos.

Ver Repositório
12há 10 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-12748

Eng Rus

  • Credit: Svyatoslav Tereshin (@TERESH1), Artem Mukhin (@saladosss)
  • Issues: #687, #825

English

Descrição

Foi descoberto um problema no processamento de arquivos XML.

O processamento do conteúdo do arquivo é realizado antes da verificação de ACL. Isso permite que um usuário com permissões limitadas envie um arquivo XML especialmente criado que pode causar consumo excessivo de recursos, levando a um potencial ataque de negação de serviço (DoS).

Configuração do Ambiente

  1. SO: Alt Linux P10 server
  2. Instale e configure libvirt/qemu conforme o artigo (em russo)
  • resumo em inglês:
root@kitploit:~
apt-get install libvirt libvirt-kvm libvirt-qemu
gpasswd -a user vmusers
systemctl enable --now libvirtd
  1. Em /etc/libvirt/libvirtd.conf, substitua o conteúdo 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. Adicione uma regra para o 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. Reinicie os serviços: systemctl restart libvirtd polkit

Reprodução

Tentativa de acessar o libvirt com um arquivo XML válido:

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

Será recebido o seguinte erro:

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

E o log correspondente do 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]

Tentativa de acessar o libvirt com um arquivo XML malicioso:

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

O log estará vazio devido à parada do servidor, e o aumento no consumo de recursos pelo libvirtd pode ser observado no top.

Руссский

Descrição

Foi descoberto um problema no processamento de arquivos XML.

O processamento do conteúdo do arquivo é realizado antes da verificação de ACL. Isso permite que um usuário com permissões limitadas envie um arquivo XML especialmente criado que pode causar consumo excessivo de recursos, levando a um potencial ataque de negação de serviço (DoS).

Configuração do Ambiente

  1. SO Alt Linux P10 server
  2. instalar/configurar libvirt/qemu conforme o artigo
  3. em /etc/libvirt/libvirtd.conf substituir o 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. adicionar uma regra para o 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

Reprodução

Acesso ao libvirt com um arquivo XML válido:

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

Será recebido um erro:

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

E o log correspondente do 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]

Acesso ao libvirt com um arquivo XML malicioso:

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

O log estará vazio devido à parada do servidor; no top é possível observar o aumento no consumo de recursos do libvirtd.

Baixar ferramenta