CWE-1264: Hardware Logic with Insecure De-Synchronization between Control and Data Channels

BaseIncomplete

The hardware logic for error handling and security checks can incorrectly forward data before the security check is complete.

View on MITRE
Back to CWE Lookup

Extended Description

Many high-performance on-chip bus protocols and processor data-paths employ separate channels for control and data to increase parallelism and maximize throughput. Bugs in the hardware logic that handle errors and security checks can make it possible for data to be forwarded before the completion of the security checks. If the data can propagate to a location in the hardware observable to an attacker, loss of data confidentiality can occur. 'Meltdown' is a concrete example of how de-synchronization between data and permissions checking logic can violate confidentiality requirements. Data loaded from a page marked as privileged was returned to the cpu regardless of current privilege level for performance reasons. The assumption was that the cpu could later remove all traces of this data during the handling of the illegal memory access exception, but this assumption was proven false as traces of the secret data were not removed from the microarchitectural state.

Technical Details

Structure
Simple

Applicable To

Languages
Not Language-Specific
Platforms
Not OS-Specific

Frequently Asked Questions

What is CWE-1264: Hardware Logic with Insecure De-Synchronization between Control and Data Channels?+

CWE-1264: Hardware Logic with Insecure De-Synchronization between Control and Data Channels is a Common Weakness Enumeration (CWE) entry maintained by MITRE. The hardware logic for error handling and security checks can incorrectly forward data before the security check is complete. Many high-performance on-chip bus protocols and processor data-paths employ separate channels for control and data to increase parallelism and maximize throughput. Bugs in the hardware logic that handle errors and security checks can make it possible for data to be forwarded before the completion of the security checks. If the data can propagate to a location in the hardware observable to an attacker, loss of data confidentiality can occur. 'Meltdown' is a concrete example of how de-synchronization between data and permissions checking logic can violate confidentiality requirements. Data loaded from a page marked as privileged was returned to the cpu regardless of current privilege level for performance reasons. The assumption was that the cpu could later remove all traces of this data during the handling of the illegal memory access exception, but this assumption was proven false as traces of the secret data were not removed from the microarchitectural state.

What are the security consequences of Hardware Logic with Insecure De-Synchronization between Control and Data Channels?+

If exploited, CWE-1264 (Hardware Logic with Insecure De-Synchronization between Control and Data Channels) it can compromise Confidentiality, leading to outcomes such as Read Memory and Read Application Data.

How do you prevent or mitigate Hardware Logic with Insecure De-Synchronization between Control and Data Channels?+

Recommended mitigations for CWE-1264 include: Thoroughly verify the data routing logic to ensure that any error handling or security checks effectively block illegal dataflows.

Which programming languages are affected by Hardware Logic with Insecure De-Synchronization between Control and Data Channels?+

CWE-1264 commonly affects Not Language-Specific. Note that weaknesses are often language-agnostic patterns, so secure coding practices apply broadly.

What are real-world examples of Hardware Logic with Insecure De-Synchronization between Control and Data Channels?+

MITRE documents real CVEs mapped to CWE-1264, including CVE-2017-5754. You can look up the full details of each CVE, including CVSS scores and remediation guidance, on our CVE Lookup tool.

What is the difference between a CWE and a CVE?+

A CWE (Common Weakness Enumeration) like CWE-1264 describes a category of software weakness — the underlying flaw type. A CVE (Common Vulnerabilities and Exposures) identifies a specific, real-world vulnerability in a particular product. In short, a CWE is the kind of mistake, and a CVE is an instance of that mistake being found in software.

Learn More