Description
The SmartVaultV3::burn()
method lacks access control measures, allowing anyone to burn minted EUROs instead of restricting this functionality to the owner. A potential exploit involves a malicious user creating a Smart Vault, depositing collateral, and minting EUROs. Subsequently, the attacker could call the SmartVaultV3::burn()
method on someone else's Smart Vault, which also has minted EUROs. This action would alter the SmartVaultV3::minted
variable, providing false data compared to the actual holdings.
Impact
While this vulnerability doesn't result in fund loss for the victim or any direct advantage for the attacker, it can significantly disrupt off-chain representations of the current minted EUROs. This discrepancy could lead to a poor user experience due to misleading or falsified data representations.
Proof of Concept
The Foundry test demonstrating the disruption of the SmartVaultV3::minted
storage variable is expected to be found here.
Recommended Mitigation
To address this issue, it's essential to restrict the burning of EUROs to only the owner by adding the SmartVaultV3::onlyOwner
modifier:
Tools Used
Manual Review
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.