A vulnerability in the Beanstalk protocol's SiloFacet.sol allows attackers to perform a temporary Denial of Service attack by exploiting the lack of a minimum transaction amount for deposits and withdrawals. This could lead to significant disruption of the protocol's usability.
The issue arises because there are no restrictions on the number of deposit
and withdrawDeposit
function requests a single address can make, and also these functions do not enforce a minimum transaction amount. This omission allows an attacker to repeatedly deposit or withdraw dust amounts (e.g., 1 wei), flooding the network with transactions and causing a temporary DoS for usage of these functions for genuine users.
An attacker can significantly disrupt the protocol's operations by executing numerous low-value transactions, causing:
Inaccessibility of funds: In the worst-case scenario, especially for withdrawals, users may be unable to withdraw their funds when needed, leading to potential financial loss or inability to participate in other financial activities.
Reduced Protocol Usability: Continuous attacks could lead to users losing confidence in the protocol's reliability and security.
Increased gas costs for genuine users: Legitimate users will face higher gas fees as their transactions compete with the attacker's flood of transactions.
Manual code review
Solodit (checklist: SOL-AM-DOSA-2)
To mitigate this vulnerability, it is recommended to implement a minimum amount requirement for both the deposit
and withdrawDeposit
functions to ensure that transactions below a certain value are rejected. Additionally, limit the number of withdrawal/deposit requests per address.
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.