search menu icon-carat-right cmu-wordmark

CERT Coordination Center

BIOS implementations permit unsafe SMM function calls to memory locations outside of SMRAM

Vulnerability Note VU#631788

Original Release Date: 2015-03-20 | Last Revised: 2015-07-08

Overview

Multiple BIOS implementations permit unsafe System Management Mode (SMM) function calls to memory locations outside of SMRAM.

Description

Multiple BIOS implementations permit unsafe System Management Mode (SMM) function calls to memory locations outside of SMRAM. According to Corey Kallenberg of LegbaCore:

System Management Mode (SMM) is the most privileged execution mode on the x86 processor. Non-SMM code can neither read nor write SMRAM (SMM RAM). Hence, even a ring 0 level attacker should be unable to gain access to SMM.

However, on modern systems, some SMM code calls or interprets function pointers located outside of SMRAM in an unsafe way. This provides opportunity for a ring 0 level attacker to break into SMM.


In order to exploit the vulnerability, an attacker must have access to physical memory. The attacker can gain code execution in the context of SMM by first manipulating a function pointer or function called by SMM and then writing bytes to System Management Interrupt (SMI) command port 0xb2 to trigger SMM.

Impact

A local, authenticated attacker may be able to execute arbitrary code in the context of SMM and bypass Secure Boot. In systems that do not use protected range registers, an attacker may be able to reflash firmware.

Solution

Please see the Vendor Information section below to determine if your system may be affected. We are continuing to communicate with vendors as they investigate these vulnerabilities.

Intel has provided the following mitigation guidance for vendors:

Starting in Haswell-based client and server platforms, the "SMM Code Access Check" feature is available in the CPU. If SMM code enables this in the appropriate MSR, then logical processors are prevented from executing SMM code outside the ranges defined by the SMRR. If SMI code jumps outside these ranges, the CPU will assert a machine check exception. During BIOS development, this can be an effective mechanism for BIOS developers to identify insecure call-outs from SMM, and during runtime, this feature can also be effective at blocking certain attacks that redirect SMM execution outside SMRAM.

Vendor Information

631788
 

View all 13 vendors View less vendors


CVSS Metrics

Group Score Vector
Base 6 AV:L/AC:H/Au:S/C:C/I:C/A:C
Temporal 5.1 E:POC/RL:U/RC:UR
Environmental 5.3 CDP:MH/TD:M/CR:ND/IR:H/AR:ND

References

Acknowledgements

Thanks to Corey Kallenberg of LegbaCore for reporting this vulnerability.

This document was written by Joel Land.

Other Information

CVE IDs: CVE-2015-0949
Date Public: 2015-03-20
Date First Published: 2015-03-20
Date Last Updated: 2015-07-08 23:16 UTC
Document Revision: 25

Sponsored by CISA.