CVE-2016-0702 in Xcodeinfo

Summary

by MITRE

The MOD_EXP_CTIME_COPY_FROM_PREBUF function in crypto/bn/bn_exp.c in OpenSSL 1.0.1 before 1.0.1s and 1.0.2 before 1.0.2g does not properly consider cache-bank access times during modular exponentiation, which makes it easier for local users to discover RSA keys by running a crafted application on the same Intel Sandy Bridge CPU core as a victim and leveraging cache-bank conflicts, aka a "CacheBleed" attack.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Analysis

by VulDB Data Team • 09/28/2022

The vulnerability identified as CVE-2016-0702 represents a significant side-channel attack vector that exploits timing variations in cache memory access patterns during cryptographic operations. This flaw specifically affects OpenSSL implementations where the MOD_EXP_CTIME_COPY_FROM_PREBUF function fails to account for cache-bank access times during modular exponentiation operations. The vulnerability operates at the intersection of hardware architecture and cryptographic software, leveraging the specific characteristics of Intel Sandy Bridge processors to create a practical attack scenario.

The technical implementation of this vulnerability stems from the OpenSSL cryptographic library's handling of modular exponentiation operations in RSA key processing. During these operations, the library uses a technique called constant-time execution to prevent timing attacks, but the MOD_EXP_CTIME_COPY_FROM_PREBUF function contains a critical flaw in its cache management approach. When multiple processes compete for the same cache banks on the same CPU core, the timing differences in memory access patterns reveal information about the secret RSA key bits. This occurs because the cache-bank conflicts create measurable variations in execution time that correlate with the cryptographic operations being performed.

The operational impact of this vulnerability extends beyond simple information disclosure to represent a sophisticated attack methodology that can be executed by local adversaries with access to the same CPU core. Attackers can craft applications that monitor cache-bank conflicts and correlate these with timing measurements to gradually reconstruct RSA private keys. This attack vector is particularly dangerous because it requires no network connectivity and can be executed on the same physical machine as the target, making it extremely difficult to detect or prevent through traditional network-based security measures. The vulnerability affects OpenSSL versions 1.0.1 through 1.0.1r and 1.0.2 through 1.0.2f, representing a substantial portion of widely deployed cryptographic software.

This vulnerability aligns with CWE-203, which describes "Observable Behavioral Vulnerability" and specifically relates to timing side channels that reveal information about the system's internal operations. The attack mechanism also maps to several ATT&CK techniques including T1059.001 for execution through command-line interfaces and T1552.004 for credential access through cache dumping techniques. The CacheBleed attack demonstrates how modern microarchitectural features can be exploited to create new attack vectors that bypass traditional cryptographic protections. Organizations affected by this vulnerability must understand that the attack requires only local access and can be executed by adversaries who share the same physical CPU core with their target, making it particularly concerning for multi-tenant environments and cloud computing deployments. The remediation strategy involves updating to affected OpenSSL versions, specifically 1.0.1s and 1.0.2g or later, which contain the necessary patches to address the cache timing variations in the modular exponentiation implementation.

Reservation

12/16/2015

Disclosure

03/02/2016

Moderation

accepted

Entry

3

Relate

show

CPE

ready

EPSS

0.01910

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!