2069
Description
Aliased or mirrored memory regions in hardware designs may have inconsistent read/write
permissions enforced by the hardware. A possible result is that an untrusted agent is blocked from
accessing a memory region but is not blocked from accessing the corresponding aliased memory
region.
Extended Description
Hardware product designs often need to implement memory protection features that enable
privileged software to define isolated memory regions and access control (read/write) policies.
Isolated memory regions can be defined on different memory spaces in a design (e.g. system
physical address, virtual address, memory mapped IO).
Each memory cell should be mapped and assigned a system address that the core software can
use to read/write to that memory. It is possible to map the same memory cell to multiple system
addresses such that read/write to any of the aliased system addresses would be decoded to the
same memory cell.
This is commonly done in hardware designs for redundancy and simplifying address decoding
logic. If one of the memory regions is corrupted or faulty, then that hardware can switch to using
the data in the mirrored memory region. Memory aliases can also be created in the system address
map if the address decoder unit ignores higher order address bits when mapping a smaller address
region into the full system address.
A common security weakness that can exist in such memory mapping is that aliased memory
regions could have different read/write access protections enforced by the hardware such that an
untrusted agent is blocked from accessing a memory address but is not blocked from accessing
the corresponding aliased memory address. Such inconsistency can then be used to bypass the
access protection of the primary memory block and read or modify the protected memory.
An untrusted agent could also possibly create memory aliases in the system address map for
malicious purposes if it is able to change the mapping of an address region or modify memory
region sizes.
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this
weakness. These relationships are defined as ChildOf, ParentOf, MemberOr and give insight to
similar items that may exist at higher and lower levels of abstraction. In addition, relationships such
as PeerOf and CanAlsoBe are defined to show similar weaknesses that may want to be explored.
Relevant to the view "Research Concepts" (CWE-1000)
Nature Type ID Name Page
ChildOf 284 Improper Access Control 680
CanPrecede 119 Improper Restriction of Operations within the Bounds of a
Memory Buffer