Linux Kernel bis 5.10.37/5.11.21/5.12.4 nVMX vmx_get_nested_state/vmx_set_nested_state erweiterte Rechte

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
6.5$0-$5k0.00

Zusammenfassunginfo

Eine Schwachstelle, die als kritisch eingestuft wurde, wurde in Linux Kernel bis 5.10.37/5.11.21/5.12.4 gefunden. Hierbei geht es um die Funktion vmx_get_nested_state/vmx_set_nested_state der Komponente nVMX. Durch Beeinflussen mit unbekannten Daten kann eine erweiterte Rechte-Schwachstelle ausgenutzt werden. Die Verwundbarkeit wird unter CVE-2021-46978 geführt. Es ist soweit kein Exploit verfügbar. Als bestmögliche Massnahme wird das Einspielen eines Upgrades empfohlen.

Detailsinfo

In Linux Kernel bis 5.10.37/5.11.21/5.12.4 (Operating System) wurde eine Schwachstelle gefunden. Sie wurde als kritisch eingestuft. Hierbei betrifft es die Funktion vmx_get_nested_state/vmx_set_nested_state der Komponente nVMX. Mittels Manipulieren mit einer unbekannten Eingabe kann eine erweiterte Rechte-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-275. Es ist nicht bekannt, inwiefern sich eine durchgesetzte Attacke genau auswirken wird. Die Zusammenfassung von CVE lautet:

In the Linux kernel, the following vulnerability has been resolved: KVM: nVMX: Always make an attempt to map eVMCS after migration When enlightened VMCS is in use and nested state is migrated with vmx_get_nested_state()/vmx_set_nested_state() KVM can't map evmcs page right away: evmcs gpa is not 'struct kvm_vmx_nested_state_hdr' and we can't read it from VP assist page because userspace may decide to restore HV_X64_MSR_VP_ASSIST_PAGE after restoring nested state (and QEMU, for example, does exactly that). To make sure eVMCS is mapped /vmx_set_nested_state() raises KVM_REQ_GET_NESTED_STATE_PAGES request. Commit f2c7ef3ba955 ("KVM: nSVM: cancel KVM_REQ_GET_NESTED_STATE_PAGES on nested vmexit") added KVM_REQ_GET_NESTED_STATE_PAGES clearing to nested_vmx_vmexit() to make sure MSR permission bitmap is not switched when an immediate exit from L2 to L1 happens right after migration (caused by a pending event, for example). Unfortunately, in the exact same situation we still need to have eVMCS mapped so nested_sync_vmcs12_to_shadow() reflects changes in VMCS12 to eVMCS. As a band-aid, restore nested_get_evmcs_page() when clearing KVM_REQ_GET_NESTED_STATE_PAGES in nested_vmx_vmexit(). The 'fix' is far from being ideal as we can't easily propagate possible failures and even if we could, this is most likely already too late to do so. The whole 'KVM_REQ_GET_NESTED_STATE_PAGES' idea for mapping eVMCS after migration seems to be fragile as we diverge too much from the 'native' path when vmptr loading happens on vmx_set_nested_state().

Die Schwachstelle wurde am 28.02.2024 öffentlich gemacht. Das Advisory findet sich auf git.kernel.org. Die Verwundbarkeit wird seit dem 27.02.2024 als CVE-2021-46978 geführt. Technische Details sind bekannt, ein verfügbarer Exploit hingegen nicht. Diese Schwachstelle wird durch das MITRE ATT&CK als Angriffstechnik T1222 bezeichnet.

Ein Aktualisieren auf die Version 5.10.38, 5.11.22, 5.12.5 oder 5.13 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches c8bf64e3fb77/200a45649ab7/bd0e8455b85b/f5c7e8425f18 lösen. Dieser kann von git.kernel.org bezogen werden. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Produktinfo

Typ

Hersteller

Name

Version

Lizenz

Webseite

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 6.6
VulDB Meta Temp Score: 6.5

VulDB Base Score: 5.5
VulDB Temp Score: 5.3
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CNA Base Score: 7.8
CNA Vector: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍

Exploitinginfo

Klasse: Erweiterte Rechte
CWE: CWE-275 / CWE-266
CAPEC: 🔍
ATT&CK: 🔍

Physisch: Teilweise
Lokal: Ja
Remote: Teilweise

Verfügbarkeit: 🔍
Status: Nicht definiert

EPSS Score: 🔍
EPSS Percentile: 🔍

Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

0-Day Time: 🔍

Upgrade: Kernel 5.10.38/5.11.22/5.12.5/5.13
Patch: c8bf64e3fb77/200a45649ab7/bd0e8455b85b/f5c7e8425f18

Timelineinfo

27.02.2024 🔍
28.02.2024 +1 Tage 🔍
28.02.2024 +0 Tage 🔍
04.11.2024 +250 Tage 🔍

Quelleninfo

Hersteller: kernel.org

Advisory: git.kernel.org
Status: Bestätigt

CVE: CVE-2021-46978 (🔍)
GCVE (CVE): GCVE-0-2021-46978
GCVE (VulDB): GCVE-100-255019

Eintraginfo

Erstellt: 28.02.2024 10:48
Aktualisierung: 04.11.2024 21:06
Anpassungen: 28.02.2024 10:48 (44), 04.11.2024 21:06 (27)
Komplett: 🔍
Cache ID: 216::103

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Do you need the next level of professionalism?

Upgrade your account now!