
Bị tin tặc đánh cắp khoảng 27 triệu USD tài sản mã hóa, vì sao Penpie bị "thảm sát"?
Tuyển chọn TechFlowTuyển chọn TechFlow

Bị tin tặc đánh cắp khoảng 27 triệu USD tài sản mã hóa, vì sao Penpie bị "thảm sát"?
Vào ngày 4 tháng 9, giao thức DeFi Penpie được xây dựng trên Pendle đã bị tin tặc tấn công, làm mất khoảng 27 triệu USD tài sản mã hóa.
Tác giả: Beosin
Ngày 04 tháng 9 năm 2024, theo dữ liệu từ Beosin Alert, giao thức DeFi Penpie được xây dựng trên Pendle đã bị tin tặc tấn công, làm mất khoảng 27 triệu USD tài sản mã hóa. Ngay lập tức, đội an toàn Beosin đã phân tích sự việc, kết quả như sau.
Penpie là một nền tảng DeFi tích hợp với Pendle Finance, chuyên khóa token PENDLE để nhận quyền quản trị trong Pendle Finance và tăng lợi nhuận đầu tư. Mục tiêu của Penpie là cung cấp dịch vụ nâng cao lợi suất và veTokenomics cho người dùng Pendle Finance.
Thông tin liên quan đến sự cố
● Giao dịch tấn công
0x56e09abb35ff12271fdb38ff8a23e4d4a7396844426a94c4d3af2e8b7a0a2813
● Địa chỉ tin tặc
0xc0Eb7e6E2b94aA43BDD0c60E645fe915d5c6eb84
● Hợp đồng tấn công
0x4aF4C234B8CB6e060797e87AFB724cfb1d320Bb7
● Hợp đồng bị tấn công
0x6e799758cee75dae3d84e09d40dc416ecf713652
Phân tích lỗ hổng
Sự việc này chủ yếu do tin tặc lợi dụng hàm claimRewards trong hợp đồng market để thực hiện tấn công reentrancy (tái nhập), nhằm tăng số dư trong hợp đồng staking, sau đó rút ra các token dư thừa và tài sản đã stake để thu lợi.
Quy trình tấn công
Giai đoạn chuẩn bị tấn công:
1. Tin tặc thông qua hợp đồng tấn công gọi tới hợp đồng Factory trong giao thức Penpie để tạo mới market và Yield, trong đó đặt SY là hợp đồng tấn công.
0xfda0dde38fa4c5b0e13c506782527a039d3a87f93f9208c104ee569a642172d2

2. Tin tặc mượn bốn loại token qua flash loan để dự trữ vốn thế chấp cho các bước tiếp theo. Sau đó gọi hàm batchHarvestMarketRewards trong hợp đồng staking để cập nhật phần thưởng cho market vừa tạo.

3. Trong hàm batchHarvestMarketRewards, khi cập nhật phần thưởng cho market, hệ thống sẽ gọi hàm redeemRewards trong hợp đồng market. Đồng thời, hợp đồng ghi lại sự thay đổi số dư trước và sau khi thực thi hàm redeemRewards.

4. Trong hàm redeemRewards của market, hệ thống sẽ gọi hàm claimReward trong hợp đồng SY. Tuy nhiên, SY chính là hợp đồng tấn công; hợp đồng này sử dụng hàm này để thực hiện tấn công tái nhập vào hợp đồng Staking, thế chấp vốn vay flash loan vào hợp đồng Staking tổng cộng 4 lần.


5. Lúc này quay trở lại hợp đồng Staking, do chênh lệch số dư trước và sau hàm redeemRewards rất lớn nên kích hoạt hàm _sendRewards. Hàm _sendRewards cuối cùng gọi đến _queueRewarder để ủy quyền lượng token dư thừa cho hợp đồng market và ghi nhận thành phần thưởng.

6. Tin tặc nhận phần thưởng đã được ghi nhận.

7. Tin tặc rút tài sản đã stake thông qua hàm withdraw, hoàn trả khoản flash loan và thu lợi.

Sau đó, Pendle đã phát hành báo cáo phân tích về cuộc tấn công: ngay sau khi phát hiện lỗ hổng, họ đã tạm dừng hợp đồng kịp thời, giúp bảo vệ 105 triệu USD tài sản khỏi tổn thất thêm.
Theo dõi dòng tiền
Tính đến thời điểm viết bài, tài sản bị đánh cắp khoảng 27 triệu USD. Theo Beosin Trace, tin tặc đã chuyển toàn bộ số tiền bị đánh cắp sang ETH, ban đầu lưu trữ tại địa chỉ 0x2f2dDE668e5426463E05D795f5297dB334f61C39.

Tính đến thời điểm viết bài, địa chỉ của tin tặc Penpie đã chuyển dần tổng cộng 2.900 ETH (trị giá khoảng 6,9 triệu USD) vào Tornado Cash.
Hiện tại, nhóm phát triển Penpie cũng đã gửi thông điệp trên chuỗi nhằm liên lạc với tin tặc, hy vọng thương lượng để hoàn trả tài sản bị đánh cắp, đồng thời hứa sẽ chi trả tiền thưởng nếu tin tặc chịu hoàn lại. Kèm theo đó là thông tin liên hệ.
Tổng kết
Về sự việc này, đội an toàn Beosin đề xuất: 1. Nên thêm bộ kiểm soát chống tái nhập (reentrancy guard) cho các hàm liên quan trong hợp đồng; 2. Nếu không dùng danh sách trắng để xác minh token đầu vào, tốt nhất nên sử dụng hợp đồng wrapper thống nhất để tạo lại token; 3. Trước khi ra mắt dự án, mạnh mẽ khuyến nghị lựa chọn công ty kiểm toán an toàn chuyên nghiệp để thực hiện kiểm toán toàn diện, từ đó giảm thiểu rủi ro an toàn.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News













