空手套白狼 —— YIEDL 被黑分析

慢雾科技
企业专栏
热度: 4311

慢雾安全团队建议项目方在开发中实施严格的参数验证机制。

By: Sissice

背景

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

空手套白狼 —— YIEDL 被黑分析

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

相关信息

攻击者地址:

0x322696471792440499b1979e0a440491e870667a

被攻击合约地址:

0x4edda16ab4f4cc46b160abc42763ba63885862a4

部分攻击交易:

0x49ca5e188c538b4f2efb45552f13309cc0dd1f3592eee54decfc9da54620c2ec

0x3629ad588ac120163792e92b6c43bd4bdc5bf35cac66eb7f3a0267df93abc849

0x0a89b8670c40b4067b9522a5933c3bf8c44c968103aa642b04c65d49ad9e6457

0x5e468cba495e5f6165418fb9d87d824309c54261055425f33f588dd3b3abbcea

0x8710034dadecfc8c26f651c612f613fffdece6e2f9957b9ec8ab843218168c1d

0x9da398ed274c8cfa774b36003fa8c930d3430d0fc5889b5008830fd6463f68a9

0x2e3d4332f66a334e0170187011ed673dc222f95bf4443b618e08f8052437ef7a

0x5a15fdc57c35f2305aaa0bb95b109ad412b17406d737d137190fe5867393339d

0x8ef3765665cd849cdf9132ab37caf6aa0f891e1f7d9f418f86a6ab6ea38b6f5b

0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021

攻击核心

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

交易分析

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

空手套白狼 —— YIEDL 被黑分析

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

空手套白狼 —— YIEDL 被黑分析

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

空手套白狼 —— YIEDL 被黑分析

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

空手套白狼 —— YIEDL 被黑分析

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

总结

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

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。