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.