Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

The First Major Security Logos of 2018: Spectre and Meltdown Vulnerabilities

This post was updated on Jan. 12, 2018 to include additional technical details and supplemental links.  

The recently disclosed Meltdown and Spectre vulnerabilities started off 2018 with a somber note, as the attacks affect everything from desktops, laptops and mobile devices to cloud providers’ infrastructure. The flaws are present in nearly all modern microprocessors and can allow an attacker to access privileged memory by abusing a feature called speculative execution.

Speculative execution

Speculative execution is a technique that allows a microprocessor to increase performance by operating on multiple branches of instructions at once. To do this, the microprocessor predicts which branch of execution is most likely to be taken and starts executing that branch before it is reached. If this prediction ends up being incorrect, the microprocessor is designed to roll back the speculatively executed instructions in a way that is transparent to the software.

Both Meltdown and Spectre can abuse this feature to access privileged memory from a less privileged process. The differences are in which components of speculative execution they abuse and how they apply to different implementations. Google’s Project Zero blog discusses the issues in detail, but here’s a quick overview on how they work.

Meltdown

The Meltdown variant (#3 discussed in the GPZ blog) can allow a userspace attacker program to read privileged kernel memory. It exploits a race condition between the memory access and privilege checking while speculatively executing instructions. This occurs when unauthorized addresses are speculatively loaded into the microprocessor cache temporarily while the privilege checking is being performed at the same time. This attack gets much more complex and is explained in detail in the Meltdown whitepaper.

Spectre

The Spectre variants (#1 and #2 discussed in the GPZ blog) can allow an attacker controlled process to read arbitrary memory belonging to another process. This other process can be the kernel itself, but the key with Spectre is that it requires a specific attack tailored to the victim process. The way it works is that the attacker process first trains the branch predictor to expect a certain branch path will be taken. The attacker process then triggers execution of the victim process and times how long it takes to execute. Based on this timing, the attacker process can determine if the specific prediction that was trained was executed by the victim process or not. Again, this attack gets a lot more complex and is explained in detail in the Spectre whitepaper.

Affected microprocessors

Meltdown is an implementation-specific vulnerability and is known to affect Intel microprocessors. The good news here is that Meltdown can be patched via a microcode update. These microcode updates are distributed as both BIOS and operating system patches. Spectre, on the other hand, is a vulnerability in how branch prediction works in general and can affect any microprocessor with this speculative execution feature. When it comes to Spectre, there is no way to patch this vulnerability via microcode. However, most Spectre class vulnerabilities can be mitigated via software updates to your operating system or programs.

Identifying affected systems

Operating system vendors are forgoing regular patch release cycles and publishing operating system patches to address this issue. Tenable.io, SecurityCenter and Nessus can identify affected systems by looking for the newly released patches. Each plugin created for the Spectre and Meltdown vulnerabilities will be marked with at least one of the following CVEs :

  • CVE-2017-5753: Systems with microprocessors utilizing speculative execution and branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis.
  • CVE-2017-5715: Systems with microprocessors utilizing speculative execution and indirect branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis.
  • CVE-2017-5754: Systems with microprocessors utilizing speculative execution and indirect branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis of the data cache.

To identify which systems are affected using Tenable.io, open the workbench and, using the advanced search, apply a CVE filter (CVE-2017-5753,CVE-2017-5715,CVE-2017-5754) as shown below. In the example filter, each CVE is placed in the field separated using a comma.

Advanced Search

Plugins

When searching for the plugins using CVE you will find several plugins. Please note, as new plugins are available they will be automatically added to the plugin feed.

Vendor

Plugin ID

Description

Amazon

105517

Amazon Linux AMI : kernel (ALAS-2018-939)

Microsoft

105547

KB4056888: Windows 10 Version 1511 January 2018 Security Update (Meltdown)(Spectre)

Microsoft

105548

KB4056890: Windows 10 Version 1607 and Windows Server 2016 January 2018 Security Update (Meltdown)(Spectre)

Microsoft

105549

KB4056891: Windows 10 Version 1703 January 2018 Security Update (Meltdown)(Spectre)

Microsoft

105550

KB4056892: Windows 10 Version 1709 January 2018 Security Update (Meltdown)(Spectre)

Microsoft

105551

KB4056893: Windows 10 LTSB January 2018 Security Update (Meltdown)(Spectre)

Microsoft

105552

KB4056897: Windows 7 and Windows Server 2008 R2 January 2018 Security Update (Meltdown)(Spectre)

Microsoft

105553

KB4056898: Windows 8.1 and Windows Server 2012 R2 January 2018 Security Update (Meltdown)(Spectre)

Red Hat

105523

RHEL 7 : kernel (RHSA-2018:0007)

Red Hat

105524

RHEL 6 : kernel (RHSA-2018:0008)

Red Hat

105525

RHEL 7 : kernel (RHSA-2018:0009)

Red Hat

105526

RHEL 7 : kernel (RHSA-2018:0010)

Red Hat

105527

RHEL 6 : kernel (RHSA-2018:0011)

Red Hat

105528

RHEL 7 : microcode_ctl (RHSA-2018:0012)

Red Hat

105529

RHEL 6 : microcode_ctl (RHSA-2018:0013)

Red Hat

105530

RHEL 7 : linux-firmware (RHSA-2018:0014)

Red Hat

105531

RHEL 7 : linux-firmware (RHSA-2018:0015)

Red Hat

105532

RHEL 7 : kernel-rt (RHSA-2018:0016)

Red Hat

105533

RHEL 6 : kernel (RHSA-2018:0017)

Scientific Linux

105534

Scientific Linux Security Update : kernel on SL6.x i386/x86_64

Scientific Linux

105535

Scientific Linux Security Update : kernel on SL7.x x86_64

Scientific Linux

105536

Scientific Linux Security Update : microcode_ctl on SL6.x i386/x86_64

Scientific Linux

105537

Scientific Linux Security Update : microcode_ctl on SL7.x x86_64

SUSE

105539

SUSE SLED12 / SLES12 Security Update : ucode-intel (SUSE-SU-2018:0006-1)

SUSE

105540

SUSE SLED12 / SLES12 Security Update : qemu (SUSE-SU-2018:0007-1)

SUSE

105541

SUSE SLES11 Security Update : microcode_ctl (SUSE-SU-2018:0009-1)

VMware

105485

VMware Fusion 8.x < 8.5.9 Multiple Vulnerabilities (VMSA-2017-0021) (VMSA-2018-0002) (Spectre) (macOS)

VMware

105555

VMware Player 12.x < 12.5.8 Multiple Vulnerabilities (VMSA-2017-0021) (VMSA-2018-0002) (Spectre)

VMware

105487

VMware Workstation 12.x < 12.5.8 Multiple Vulnerabilities (VMSA-2017-0021) (VMSA-2018-0002) (Spectre)

VMware

105486

ESXi 5.5 / 6.0 / 6.5 / Multiple Vulnerabilities (VMSA-2017-0021) (VMSA-2018-0002) (Spectre) (remote check)

Scanning for vulnerabilities

Tenable.io and SecurityCenter users will receive a new scan policy to run scans targeting Spectre and Meltdown. To create a scan job, go to ‘Scan policy templates’ and select the policy shown in the image below. All of the required plugins are assigned to the policy. You will then need to add credentials for the systems you are targeting. All plugins in the policy require credentials to be executed.

Meltdown Scan Policy

Dashboard

Tenable.io and SecurityCenter users can use the dashboard that's available in the feed allowing for easy identification of affected systems. The dashboard provides two components that use the CVE to group affected systems by Plugin Group and Vulnerability. Each view provides customers with a focused view of systems that need to be patched. The other components show how the customer is progressing with mitigating vulnerabilities based on patch published date.

Spectre and Meltdown Dashboard

Wrapping up

We will continue to research these vulnerabilities, and investigate different ways to detect them. When new information is available, we will release additional plugins. This vulnerability is a real and present danger to all organizations and should be patched immediately. While Microsoft, Red Hat, VMWare and other vendors are making efforts to release patches, organizations are responsible for applying those patches as soon as possible.