This vulnerability occurs when software incorrectly assumes how data is structured in memory or within network packets, leading to unexpected behavior when those underlying layouts change.
At the system level, memory layout is not universal. Different compilers, architectures, or platform updates can change how variables are ordered, aligned, or padded in memory. For example, one system might place two variables adjacent to each other, while another inserts space between them for performance alignment. If your code assumes a specific, fixed arrangement—like calculating offsets between variables—it will break when ported or run in a different environment, potentially reading corrupt data or causing crashes. In network protocols, similar risks exist when parsing messages. Developers often use fixed offsets relative to known header fields to locate specific data. However, new protocol versions, optional extensions, or edge cases can introduce unexpected padding or reorder fields. This causes the software to misinterpret packet contents, treating one type of data (like a length field) as another (like payload data), which can lead to security flaws like information disclosure or denial of service.
Impact: Modify MemoryRead Memory
Can result in unintended modifications or exposure of sensitive memory.
cLow