2024 Passwordstore Audit
2024 Passwordstore Audit
Version 0.1
ARAVIND
• ARAVIND
Assisting Auditors:
• None
Table of contents
See table
– Scope
• Protocol Summary
– Roles
• Executive Summary
– Issues found
• Findings
– High
* [H-1] Passwords stored on-chain are visable to anyone, not matter solidity variable
visibility
* [H-2] PasswordStore::setPassword is callable by anyone
Risk Classification
Impact
ARAVIND 2
PasswordStore Audit Report Feb 20, 2024
High H H/M M
Low M M/L L
Audit Details
The findings described in this document correspond the following commit hash:
1 2e8f81e263b3a9d18fab4fb5c46805ffc10a9990
ARAVIND 3
PasswordStore Audit Report Feb 20, 2024
Scope
1 src/
2 --- PasswordStore.sol
Protocol Summary
PasswordStore is a protocol dedicated to storage and retrieval of a user’s passwords. The protocol is
designed to be used by a single user, and is not designed to be used by multiple users. Only the owner
should be able to set and access this password.
Roles
• Owner: Is the only one who should be able to set and access the password.
For this contract, only the owner should be able to interact with the contract.
Executive Summary
Issues found
Severity Number of issues found
High 2
Medium 0
Low 0
Info 0
Gas Optimizations 0
Total 0
ARAVIND 4
PasswordStore Audit Report Feb 20, 2024
Findings
High
[H-1] Passwords stored on-chain are visable to anyone, not matter solidity variable visibility
Description: All data stored on-chain is visible to anyone, and can be read directly from the
blockchain.
Proof of Concept: The below test case shows how anyone could read the password directly from the
blockchain. We use foundry’s cast tool to read directly from the storage of the contract, without being
the owner.
ARAVIND 5
PasswordStore Audit Report Feb 20, 2024
4 emit SetNetPassword();
5 }
Proof of Concept:
ARAVIND 6
PasswordStore Audit Report Feb 20, 2024
ARAVIND 7