CVE-2026-46147 in Linux
Résumé
par VulDB • 28/05/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
KVM : arm64 : Correction de la fuite de pin et de l'ordre de publication dans __pkvm_init_vcpu()
Deux bogues existent dans le chemin d'initialisation du vCPU :
1. Si une vérification échoue après le succès de hyp_pin_shared_mem(), le chemin de nettoyage saute vers 'unlock' sans appeler unpin_host_vcpu() ou unpin_host_sve_state(), entraînant une fuite permanente des références de pin sur les pages du vCPU hôte et de l'état SVE.
Extraire une fonction utilitaire register_hyp_vcpu() qui effectue les vérifications et le stockage. Lorsque register_hyp_vcpu() renvoie une erreur, appelez unpin_host_vcpu() et unpin_host_sve_state() en ligne avant de continuer vers l'étiquette 'unlock' existante.
2. register_hyp_vcpu() publie le nouveau pointeur de vCPU dans 'hyp_vm->vcpus[]' avec un stockage nu (bare store), permettant à un appelant concurrent de pkvm_load_hyp_vcpu() d'observer un objet vCPU partiellement initialisé.
Assurez-vous que le stockage utilise smp_store_release() et que la lecture utilise smp_load_acquire(). Bien que 'vm_table_lock' sérialise actuellement le stockage et la lecture, ces barrières garantissent que le lecteur voit l'objet 'hyp_vcpu' entièrement initialisé, même s'il existait un chemin sans verrou ou si les garanties d'ordre propres au verrou étaient insuffisantes pour l'initialisation d'objets imbriqués.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.