CVE Vulnerabilities

CVE-2018-10901

Improper Initialization

Published: Jul 26, 2018 | Modified: Nov 21, 2024
CVSS 3.x
7.8
HIGH
Source:
NVD
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.2 HIGH
AV:L/AC:L/Au:N/C:C/I:C/A:C
RedHat/V2
RedHat/V3
7.8 IMPORTANT
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Ubuntu
HIGH
root.io logo minimus.io logo echo.ai logo

A flaw was found in Linux kernels KVM virtualization subsystem. The VMX code does not restore the GDT.LIMIT to the previous host value, but instead sets it to 64KB. With a corrupted GDT limit a hosts userspace code has an ability to place malicious entries in the GDT, particularly to the per-cpu variables. An attacker can use this to escalate their privileges.

Weakness

The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.

Affected Software

NameVendorStart VersionEnd Version
Linux_kernelLinux*2.6.36 (excluding)
Red Hat Enterprise Linux 6RedHatkernel-0:2.6.32-754.3.5.el6*
Red Hat Enterprise Linux 6.4 Advanced Update SupportRedHatkernel-0:2.6.32-358.91.4.el6*
Red Hat Enterprise Linux 6.5 Advanced Update SupportRedHatkernel-0:2.6.32-431.91.3.el6*
Red Hat Enterprise Linux 6.6 Advanced Update SupportRedHatkernel-0:2.6.32-504.72.4.el6*
Red Hat Enterprise Linux 6.6 Telco Extended Update SupportRedHatkernel-0:2.6.32-504.72.4.el6*
Red Hat Enterprise Linux 6.7 Extended Update SupportRedHatkernel-0:2.6.32-573.60.4.el6*
Linux-awsUbuntuupstream*
Linux-azureUbuntuupstream*
Linux-azure-edgeUbuntubionic*
Linux-azure-edgeUbuntuesm-infra/bionic*
Linux-azure-edgeUbuntuupstream*
Linux-euclidUbuntuupstream*
Linux-floUbuntutrusty*
Linux-floUbuntuupstream*
Linux-floUbuntuxenial*
Linux-gcpUbuntuupstream*
Linux-gkeUbuntuupstream*
Linux-gkeUbuntuxenial*
Linux-goldfishUbuntutrusty*
Linux-goldfishUbuntuupstream*
Linux-goldfishUbuntuxenial*
Linux-grouperUbuntutrusty*
Linux-grouperUbuntuupstream*
Linux-hweUbuntuupstream*
Linux-hwe-edgeUbuntubionic*
Linux-hwe-edgeUbuntuesm-infra/bionic*
Linux-hwe-edgeUbuntuupstream*
Linux-kvmUbuntuupstream*
Linux-lts-trustyUbuntuupstream*
Linux-lts-utopicUbuntutrusty*
Linux-lts-utopicUbuntuupstream*
Linux-lts-vividUbuntutrusty*
Linux-lts-vividUbuntuupstream*
Linux-lts-wilyUbuntutrusty*
Linux-lts-wilyUbuntuupstream*
Linux-lts-xenialUbuntuupstream*
Linux-maguroUbuntutrusty*
Linux-maguroUbuntuupstream*
Linux-makoUbuntutrusty*
Linux-makoUbuntuupstream*
Linux-makoUbuntuxenial*
Linux-mantaUbuntutrusty*
Linux-mantaUbuntuupstream*
Linux-oemUbuntuupstream*
Linux-raspi2Ubuntuupstream*
Linux-snapdragonUbuntuupstream*

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, in Java, if the programmer does not explicitly initialize a variable, then the code could produce a compile-time error (if the variable is local) or automatically initialize the variable to the default value for the variable’s type. In Perl, if explicit initialization is not performed, then a default value of undef is assigned, which is interpreted as 0, false, or an equivalent value depending on the context in which the variable is accessed.

References