Skip to main content

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.