CVE-2026-46147 in Linux
Zusammenfassung
von VulDB • 29.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
KVM: arm64: Behebung eines Pin-Lecks und der Publikationsreihenfolge in __pkvm_init_vcpu()
Es bestehen zwei Fehler im Pfad zur Initialisierung der vCPU:
1. Wenn eine Prüfung fehlschlägt, nachdem hyp_pin_shared_mem() erfolgreich war, springt der Bereinigungspfad zu „unlock“, ohne unpin_host_vcpu() oder unpin_host_sve_state() aufzurufen, wodurch dauerhaft Pin-Referenzen auf die Host-vCPU- und SVE-Zustandsseiten verloren gehen.
Es wird eine Hilfsfunktion register_hyp_vcpu() extrahiert, die die Prüfungen und die Speicherung durchführt. Wenn register_hyp_vcpu() einen Fehler zurückgibt, werden unpin_host_vcpu() und unpin_host_sve_state() inline aufgerufen, bevor zum bestehenden „unlock“-Label gesprungen wird.
2. register_hyp_vcpu() veröffentlicht den neuen vCPU-Zeiger in „hyp_vm->vcpus[]“ mit einer einfachen Speicheroperation (bare store), wodurch ein paralleler Aufrufer von pkvm_load_hyp_vcpu() ein teilweise initialisiertes vCPU-Objekt beobachten kann.
Es wird sichergestellt, dass die Speicheroperation smp_store_release() verwendet und die Ladeoperation smp_load_acquire(). Während „vm_table_lock“ derzeit die Speicher- und Ladeoperationen serialisiert, stellen diese Barrieren sicher, dass der Leser das vollständig initialisierte „hyp_vcpu“-Objekt sieht, selbst wenn es einen sperrlosen Pfad gäbe oder die eigenen Reihenfolgegarantien der Sperre für die Initialisierung verschachtelter Objekte unzureichend wären.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.