DEV Community

THE CODE DOCTOR
THE CODE DOCTOR

Posted on

1

02.DEFI ATTACKS - Keine Verfallsfrist/Deadline

Fortgeschrittene Protokolle wie Automated Market Makers (AMMs) können es den Benutzern ermöglichen, einen Deadline-Parameter festzulegen, der eine zeitliche Begrenzung erzwingt, bis zu der die Transaktion ausgeführt werden muss. Ohne einen Deadline-Parameter kann die Transaktion im Mempool verbleiben und zu einem viel späteren Zeitpunkt ausgeführt werden, was möglicherweise zu einem schlechteren Preis für den Benutzer führt.

Protokolle sollten die Deadline nicht auf block.timestamp setzen [mehr dazu], da ein Validator die Transaktion zurückhalten kann, und der Block, in den sie schließlich aufgenommen wird, den block.timestamp enthält. Dies bietet also keinen Schutz.

Protokolle sollten Benutzern, die mit AMMs interagieren, ermöglichen, Verfallsfristen festzulegen. Ohne eine solche Frist besteht eine potenzielle kritische Anfälligkeit für Verluste, insbesondere wenn auch kein Slippage-Parameter festgelegt wurde. Untersuchen Sie diesen schwerwiegenden Fund aus Sherlocks BlueBerry Update 1-Wettbewerb.

// 2. Swap rewards tokens to debt token
uint256 rewards = _doCutRewardsFee(CRV);
_ensureApprove(CRV, address(swapRouter), rewards);
swapRouter.swapExactTokensForTokens(
    rewards,
    0, // @audit no slippage, can receive 0 output tokens
    swapPath,
    address(this),
    type(uint256).max // @audit no deadline, transaction can 
    // be executed later at more unfavorable time
);
Enter fullscreen mode Exit fullscreen mode

Hier ist „minTokensOut“ auf 0 fest codiert, sodass der Swap potenziell 0 Tokens zurückgeben kann. Der Deadline-Parameter ist auf den Maximalwert von uint256 fest codiert, sodass die Transaktion lange zurückgehalten und zu einem viel späteren und ungünstigeren Zeitpunkt für den Benutzer ausgeführt werden kann. Diese Kombination aus fehlendem Slippage- und Deadline-Parameter setzt den Benutzer dem potenziellen Verlust aller seiner eingesetzten Tokens aus!

Weitere Beispiele:
1 - The createMarket transaction lack of expiration timestamp check,
2 - [M-01] Stableswap - Deadline do not work,
3 - [M-01] Missing deadline checks allow pending transactions to be maliciously executed
4 - [M-01] Missing deadline checks allow pending transactions to be maliciously executed,
5 - [M-01] _harvest has no slippage protection when swapping auraBAL for AURA,
6 - Users are forced to swap all reward tokens with no slippage protection

Billboard image

Imagine monitoring that's actually built for developers

Join Vercel, CrowdStrike, and thousands of other teams that trust Checkly to streamline monitor creation and configuration with Monitoring as Code.

Start Monitoring

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay