
Pourquoi Penpie s'est-il fait « nettoyer » par des hackers, avec environ 27 millions de dollars d'actifs cryptographiques volés ?
TechFlow SélectionTechFlow Sélection

Pourquoi Penpie s'est-il fait « nettoyer » par des hackers, avec environ 27 millions de dollars d'actifs cryptographiques volés ?
Le 4 septembre, le protocole DeFi Penpie, construit sur Pendle, a été piraté, entraînant le vol d'actifs cryptographiques d'une valeur d'environ 27 millions de dollars.
Rédaction : Beosin
Le 4 septembre 2024, selon le suivi de Beosin Alert, le protocole DeFi Penpie construit sur Pendle a été victime d'une attaque, entraînant le vol d'actifs cryptographiques d'une valeur d'environ 27 millions de dollars américains. L'équipe de sécurité Beosin a immédiatement analysé l'incident, dont les résultats sont présentés ci-dessous.
Penpie est une plateforme DeFi intégrée à Pendle Finance, spécialisée dans le blocage du jeton PENDLE afin d'obtenir des droits de gouvernance au sein de Pendle Finance ainsi qu'un rendement accru. Penpie vise à offrir aux utilisateurs de Pendle Finance des services d'amélioration du rendement et de la mécanique veTokenomics.
Informations relatives à l'incident
● Transaction d'attaque
0x56e09abb35ff12271fdb38ff8a23e4d4a7396844426a94c4d3af2e8b7a0a2813
● Adresse de l'attaquant
0xc0Eb7e6E2b94aA43BDD0c60E645fe915d5c6eb84
● Contrat utilisé pour l'attaque
0x4aF4C234B8CB6e060797e87AFB724cfb1d320Bb7
● Contrat attaqué
0x6e799758cee75dae3d84e09d40dc416ecf713652
Analyse de la vulnérabilité
L'incident découle principalement de l'exploitation par l'attaquant de la fonction claimRewards du contrat market, permettant une réentrée (reentrancy) dans le processus de mise en gage (staking), augmentant ainsi artificiellement le solde du contrat de staking. L'attaquant a ensuite retiré les jetons supplémentaires et les actifs mis en gage du contrat de staking pour réaliser un profit.
Déroulement de l'attaque
Phase de préparation :
1. L'attaquant a utilisé son contrat malveillant pour appeler le contrat Factory de Penpie afin de créer un nouveau marché (market) et un nouveau Yield, en définissant SY comme étant le contrat d'attaque.
0xfda0dde38fa4c5b0e13c506782527a039d3a87f93f9208c104ee569a642172d2

2. L'attaquant a obtenu via un prêt flash quatre types de jetons afin de constituer des fonds destinés à être mis en gage. Ensuite, il a appelé la fonction batchHarvestMarketRewards du contrat de staking pour mettre à jour les récompenses du nouveau marché créé.

3. Dans la fonction batchHarvestMarketRewards, lors de la mise à jour des récompenses du marché, le contrat appelle la fonction redeemRewards du contrat market. Le contrat enregistre également la variation du solde avant et après l'exécution de redeemRewards.

4. Dans la fonction redeemRewards du contrat market, celle-ci appelle la fonction claimReward du contrat SY. Or, le contrat SY est justement le contrat malveillant. Ce dernier exploite cette fonction pour réentrer dans le contrat de staking et y dépose les fonds obtenus via le prêt flash, ce processus se produisant 4 fois.


5. Une fois revenu dans le contrat de staking, la différence significative entre les soldes avant et après redeemRewards déclenche la fonction _sendRewards. Cette dernière appelle finalement _queueRewarder, qui autorise le contrat market à utiliser les jetons excédentaires et les enregistre comme récompenses.

6. L'attaquant retire alors les récompenses enregistrées.

7. L'attaquant retire les actifs mis en gage via la fonction withdraw, rembourse le prêt flash et s'approprie le profit.

Par la suite, Pendle a publié un rapport d'analyse de l'attaque : après avoir identifié la vulnérabilité, les contrats ont été immédiatement suspendus, évitant ainsi des pertes supplémentaires estimées à 105 millions de dollars américains.
Suivi des fonds
Au moment de la publication, environ 27 millions de dollars américains avaient été volés. Selon le traçage effectué par Beosin Trace, l'attaquant a converti l'intégralité des fonds volés en ETH. Les fonds ont d'abord été transférés vers l'adresse 0x2f2dDE668e5426463E05D795f5297dB334f61C39.

Jusqu'à présent, l'adresse de l'attaquant de Penpie a progressivement transféré 2900 ETH (d'une valeur d'environ 6,9 millions de dollars américains) vers Tornado Cash.
Actuellement, l'équipe de projet Penpie a lancé un message public à l'attaquant via la blockchain, espérant entamer des discussions afin d'obtenir le retour des fonds volés, en proposant une prime en cas de restitution, accompagné de coordonnées de contact.
Synthèse
Concernant cet incident, l'équipe de sécurité Beosin recommande : 1. D'ajouter des modificateurs anti-réentrée (reentrancy guards) aux fonctions critiques des contrats ; 2. Si une liste blanche n'est pas utilisée pour valider les jetons entrants, il est préférable d'utiliser un contrat d'emballage standardisé pour recréer les jetons ; 3. Avant tout déploiement, il est fortement conseillé de faire auditer le projet de manière complète par une société de sécurité professionnelle afin d'éviter les risques liés à la sécurité.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News













