This vulnerability occurs when a system releases a resource like memory or a file for reuse but fails to erase the sensitive data it previously contained. The old information remains accessible when the resource is allocated to a new process or used in a different context.
When an operating system or application frees resources—such as deallocating memory or deleting a file—it typically doesn't automatically wipe the stored data for performance reasons. This leftover information can then be exposed if the resource is reused by another part of the system or a different user. The risk also appears within the same process, like when new variable-length data doesn't fully overwrite older, larger data, leaving remnants in memory structures or on disk. This flaw extends to hardware states, such as transitions between power, sleep, or debug modes, where residual data might leak across privilege boundaries. Proactively clearing sensitive data before reuse is a key defense. While SAST tools can detect these patterns, Plexicus uses AI to not only identify the issue but also generate the specific code fixes—like zeroizing memory or securely wiping files—saving significant manual remediation effort across your application portfolio.
Impact: Read Application Data
Effectiveness: High
Effectiveness: High
During the transition from A to B, the device does not scrub the memory.
For transition from state A to state B, remove information which should not be available once the transition is complete.
cmodule aes0_wrapper #(...)(...); ... always @(posedge clk_i)
verilog
p_c[3] <= reglk_ctrl_i[3] ? p_c[3] : wdata[31:0];** 2:
verilog
verilog
p_c[1] <= reglk_ctrl_i[3] ? p_c[1] : wdata[31:0];** 4:
verilog
verilogmodule aes0_wrapper #(...)(...); ... always @(posedge clk_i)
verilog
else if(ct_valid) //encryption process complete, clear p_c[i]**
verilog
verilog
p_c[0] <= 0;**
verilog