1月17日消息,据Beosin旗下EagleEye安全风险监控、预警与阻断平台监测显示,Socket协议遭受攻击者call注入攻击,导致大量授权用户资金被盗。本次攻击主要是由于Socket合约的performAction函数存在不安全的call调用。

该函数功能是调用者可以将WETH兑换为ETH,并且调用者需要通过WETH的call将转入合约的WETH兑换为ETH,否则将不能通过余额检查。按理说函数中的call调用只能调用WETH合约的withdraw函数,但是项目方未考虑到调用者转入的WETH数量为0的情况,导致调用者可以在call中去调用其他指定函数,并且能通过余额检查。攻击者通过构造calldata,调用任意代币的transferfrom,将其他用户授权给该合约的代币转移到攻击者地址。目前攻击者将被盗资金兑换为ETH,并保存在攻击者地址上。

此前今日早些时候消息,互操作性协议Socket遭攻击,损失超过330万美元,已暂停受影响合约。

Beosin:Socket协议遭受攻击者原因是call注入攻击