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
storagekeyword - 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.