Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: high
Valid

storage is readable even if private

Summary

Storage variables are readable on the blockchain as all data is public.

Vulnerability Details

Because all data on blockchains is public, it can be read and the password can be retrieved by anyone if stored in plain text.

Impact

High

Tools Used

EthersJS

Recommendations

Encrypt password and store encrypted password only.

POC:

const value = await provider.getStorageAt(passwordStoreAddress, 1);
console.log(`Value at slot 1: ${value}`);
Updates

Lead Judging Commences

inallhonesty Lead Judge
almost 2 years ago
inallhonesty Lead Judge almost 2 years ago
Submission Judgement Published
Validated
Assigned finding tags:

finding-anyone-can-read-storage

Private functions and state variables are only visible for the contract they are defined in and not in derived contracts. In this case private doesn't mean secret/confidential

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.