Description
The product's architecture mirrors regions without ensuring that their contents always stay in sync.
Having mirrored regions with different values might result in the exposure of sensitive information or possibly system compromise. In the interest of increased performance, one might need to duplicate a resource. A cache memory is a common example of this concept, which keeps a "local" copy of a data element in the high speed cache memory. Unfortunately, this speed improvement comes with a downside, since the product needs to ensure that the local copy always mirrors the original copy truthfully. If they get out of sync, the computational result is no longer true. During hardware design, memory is not the only item which gets mirrored. There are many other entities that get mirrored, as well: registers, memory regions, and, in some cases, even whole computational units. For example, within a multi-core processor, if all memory accesses for each and every core goes through a single Memory-Management Unit (MMU) then the MMU will become a performance bottleneck. In such cases, duplicating local MMUs that will serve only a subset of the cores rather than all of them may resolve the performance issue. These local copies are also called "shadow copies" or "mirrored copies." If the original resource never changed, local duplicate copies getting out of sync would never be an issue. However, the values of the original copy will sometimes change. When the original copy changes, the mirrored copies must also change, and change fast. This situation of shadow-copy-possibly-out-of-sync-with-original-copy might occur as a result of multiple scenarios, including the following:
Potential Impact
Confidentiality, Integrity, Availability, Access Control, Accountability, Authentication, Authorization, Non-Repudiation
Varies by Context
Demonstrative Examples
Mitigations & Prevention
Whenever there are multiple, physically different copies of the same value that might change and the process to update them is not instantaneous and atomic, it is impossible to assert that the original and shadow copies will always be in sync - there will always be a time period when they are out of sync. To mitigate the consequential risk, the recommendations essentially are:
Related Weaknesses
Frequently Asked Questions
What is CWE-1251?
CWE-1251 (Mirrored Regions with Different Values) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. The product's architecture mirrors regions without ensuring that their contents always stay in sync.
How can CWE-1251 be exploited?
Attackers can exploit CWE-1251 (Mirrored Regions with Different Values) to varies by context. This weakness is typically introduced during the Architecture and Design phase of software development.
How do I prevent CWE-1251?
Key mitigations include: Whenever there are multiple, physically different copies of the same value that might change and the process to update them is not instantaneous and atomic, it is impossible to assert that the origina
What is the severity of CWE-1251?
CWE-1251 is classified as a Base-level weakness (Medium abstraction). Its actual severity depends on the specific context and how the weakness manifests in your application.