慢雾科技 2024年07月23日
空手套白狼 —— YIEDL 被黑分析
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

YIEDL 项目遭攻击事件的核心是利用合约处理 redeem 函数调用时未能充分验证用户输入的外部参数,攻击者通过恶意构造这一外部参数,实现了未授权的资产转移。攻击者多次调用 redeem 函数,申请赎回数量为 0 的资产,并在函数执行过程中,通过恶意构造的 dataList 参数解析并外部调用 1inch Router 中对应的函数来执行资产兑换操作,最终将 Yiedl BULL 合约中的 WBNB-ADA Token 兑换为 BNB 至攻击者的地址。

👨‍💻 **攻击核心:** 攻击者利用合约处理 redeem 函数调用时未能充分验证用户输入的外部参数,通过恶意构造这一外部参数,实现了未授权的资产转移。该参数是控制资产兑换的关键数据,通常包含特定的交易指令或路由信息。攻击者通过恶意构造这一外部参数,实现了未授权的资产转移。

📊 **交易分析:** 攻击者多次调用 redeem 函数,申请赎回数量为 0 的资产,此行为本身看似无害,因为赎回数量为零时通常不会触发任何实际的资金流动。但是跟进 redeem 函数可以发现,该函数会遍历合约允许的资产列表,并在当前资产不为用户希望接收的资产时,会根据传入的 dataList 参数解析并外部调用 1inch Router 中对应的函数来执行资产兑换操作。而由于此处传入的 dataList 并未经过检查和验证,使得攻击者可以构造恶意的值去执行 1inch Router 合约的 unoswapTo 函数来进行任意可控的兑换代币操作。

💰 **攻击结果:** Yiedl BULL 合约中的 WBNB-ADA Token 被兑换为 BNB 至攻击者的地址。攻击者无需实际拥有任何赎回份额,即可触发由 dataList 参数控制的代币兑换操作,在不消耗自身资产的情况下,多次调动合约资金,获利离场。

🛡️ **安全建议:** 项目方在开发中实施严格的参数验证机制,尤其是在涉及合约中的资金操作时,要确保所有外部调用均符合预期的行为规范,并对合约的逻辑进行彻底的安全审计,避免类似事件再次发生。

🔍 **慢雾团队:** 慢雾安全团队对该攻击事件展开分析并将结果分享,并建议项目方加强安全措施,防止类似事件再次发生。

By: Sissice

背景


2024 年 4 月 24 日,据慢雾安全团队情报,BSC 链上的 YIEDL 项目遭攻击,攻击者获利约 30 万美元。慢雾安全团队对该攻击事件展开分析并将结果分享如下:


(https://twitter.com/SlowMist_Team/status/1782962346039898473)


相关信息


攻击者地址:

0x322696471792440499b1979e0a440491e870667a

被攻击合约地址:

0x4edda16ab4f4cc46b160abc42763ba63885862a4


部分攻击交易:

0x49ca5e188c538b4f2efb45552f13309cc0dd1f3592eee54decfc9da54620c2ec

0x3629ad588ac120163792e92b6c43bd4bdc5bf35cac66eb7f3a0267df93abc849

0x0a89b8670c40b4067b9522a5933c3bf8c44c968103aa642b04c65d49ad9e6457

0x5e468cba495e5f6165418fb9d87d824309c54261055425f33f588dd3b3abbcea

0x8710034dadecfc8c26f651c612f613fffdece6e2f9957b9ec8ab843218168c1d

0x9da398ed274c8cfa774b36003fa8c930d3430d0fc5889b5008830fd6463f68a9

0x2e3d4332f66a334e0170187011ed673dc222f95bf4443b618e08f8052437ef7a

0x5a15fdc57c35f2305aaa0bb95b109ad412b17406d737d137190fe5867393339d

0x8ef3765665cd849cdf9132ab37caf6aa0f891e1f7d9f418f86a6ab6ea38b6f5b

0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021


攻击核心


本次事件的攻击核心是利用合约处理 redeem 函数调用时未能充分验证用户输入的外部参数。该参数是控制资产兑换的关键数据,通常包含特定的交易指令或路由信息。攻击者通过恶意构造这一外部参数,实现了未授权的资产转移。


交易分析


攻击者多次调用 redeem 函数,申请赎回数量为 0 的资产,此行为本身看似无害,因为赎回数量为零时通常不会触发任何实际的资金流动:



但是跟进 redeem 函数可以发现,该函数会遍历合约允许的资产列表,并在当前资产不为用户希望接收的资产时,会根据传入的 dataList 参数解析并外部调用 1inch Router 中对应的函数来执行资产兑换操作。



而由于此处传入的 dataList 并未经过检查和验证,使得攻击者可以构造恶意的值去执行 1inch Router 合约的 unoswapTo 函数来进行任意可控的兑换代币操作。



结果,Yiedl BULL 合约中的 WBNB-ADA Token 被兑换为 BNB 至攻击者的地址。



通过这种方式,攻击者无需实际拥有任何赎回份额,即可触发由 dataList 参数控制的代币兑换操作,在不消耗自身资产的情况下,多次调动合约资金,获利离场。


总结


本次攻击的核心在于函数未能充分验证用户输入的 dataList 参数,导致攻击者可以构造恶意的外部数据并利用 1inch 套走合约中的代币。慢雾安全团队建议项目方在开发中实施严格的参数验证机制,尤其是在涉及合约中的资金操作时,要确保所有外部调用均符合预期的行为规范,并对合约的逻辑进行彻底的安全审计,避免类似事件再次发生。


慢雾导航


慢雾科技官网

https://www.slowmist.com/


慢雾区官网

https://slowmist.io/


慢雾 GitHub

https://github.com/slowmist


Telegram

https://t.me/slowmistteam


Twitter

https://twitter.com/@slowmist_team


Medium

https://medium.com/@slowmist


知识星球

https://t.zsxq.com/Q3zNvvF

?发表于:中国 中国香港

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

BSC 链 YIEDL 攻击事件 合约安全 慢雾安全团队
相关文章