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-2023-20573-poc — Preuve de concept démontrant CVE-2023-20573: une vulnérabilité matérielle dans AMD SEV-SNP qui permet la suppression de la réinjection d'exceptions dans KVM, permettant une exploitation au niveau des instructions. | Kitploit
Outils/GitHubGitHub/freax13/cve-2023-20573-poc
Analyse des VulnérabilitésExploitationFuzzingSécurité MatérielleExploitation de Binaires
GitHubfreax13/cve-2023-20573-poc

cve-2023-20573-poc

Preuve de concept démontrant CVE-2023-20573: une vulnérabilité matérielle dans AMD SEV-SNP qui permet la suppression de la réinjection d'exceptions dans KVM, permettant une exploitation au niveau des instructions.

Voir le dépôt
6il y a 2 ansPas 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

Utilisation du PoC

Ce dépôt contient un VMM qui démarre un invité SEV-SNP avec un noyau personnalisé. Le VMM et le noyau sont une version allégée d'un de mes projets. Un noyau Linux modifié est nécessaire pour fonctionner sur l'hôte : https://github.com/Freax13/linux/tree/for-amd.

La preuve de concept peut être exécutée comme suit :

root@kitploit:~
cd host
cargo run -p vmm

Explication

Ce code saute d'avant en arrière entre deux instructions :

root@kitploit:~
2:
    nop
    jmp 2b

Lorsque le drapeau TF est défini dans le registre FLAGS, des exceptions doivent être générées avec le pointeur d'instruction alternant entre les deux instructions.

Le noyau invité définit un gestionnaire d'exceptions qui enregistre simplement le pointeur d'instruction rapporté dans la trame de pile d'interruption. En théorie, les journaux devraient ressembler à ceci :

root@kitploit:~
...
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
...

Cependant, en pratique, le noyau hôte modifié supprime la réinjection, ce qui donne les journaux suivants :

root@kitploit:~
...
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:53] last instruction was also nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:59] last instruction was also jmp
[INFO  kernel/src/exception.rs:50] nop
[INFO  kernel/src/exception.rs:56] jmp
[INFO  kernel/src/exception.rs:50] nop
...

Les événements supprimés apparaîtront dans les journaux du noyau hôte :

root@kitploit:~
...
[798678.660473] kvm_amd: exit_int_info=80000301 exit_info_1=500000004 exit_info_2=180000000 exit_code=400
[798678.678645] kvm_amd: exit_int_info=80000301 exit_info_1=500000004 exit_info_2=180000000 exit_code=400
[798678.680906] kvm_amd: exit_int_info=80000301 exit_info_1=500000004 exit_info_2=180000000 exit_code=400
[798678.683491] kvm_amd: exit_int_info=80000301 exit_info_1=500000004 exit_info_2=180000000 exit_code=400
[798678.700844] kvm_amd: exit_int_info=80000301 exit_info_1=500000004 exit_info_2=180000000 exit_code=400
[798678.712970] kvm_amd: exit_int_info=80000301 exit_info_1=500000004 exit_info_2=180000000 exit_code=400
...

Cela démontre que la livraison de l'exception #DB a été supprimée.

Télécharger l’outil