Uninitialized Storage Vulnerabilities
What it detects
It identifies variables or structs allocated using new
without proper storage initialization. These pointers may overwrite existing storage when used, corrupting vital data.
Typical symptoms
- Use of uninitialized structs with
storage
keyword - Unexpected overwriting of unrelated variables
Solidity snippet (v0.8.25)
pragma solidity ^0.8.25;
contract Uninit {
struct Data { uint256 val; }
Data public data;
function write() external {
Data storage d;
// d not initialized points to slot zero
d.val = 1;
}
}
Why it matters on EVM
Uninitialized storage writes can destroy contract state or create exploits by modifying privileged variables.