據Beosin旗下EagleEye安全風險監控、預警與阻斷平台監測顯示,Socket協議遭受攻擊者call注入攻擊,導致大量授權用戶資金被盜。本次攻擊主要是由於Socket合約的performAction函數存在不安全的call調用。
該函數功能是調用者可以將WETH兌換為ETH,並且調用者需要通過WETH的call將轉入合約的WETH兌換為ETH,否則將不能通過餘額檢查。按理說函數中的call調用只能調用WETH合約的withdraw函數,但是項目方未考慮到調用者轉入的WETH數量為0的情況,導致調用者可以在call中去調用其他指定函數,並且能通過餘額檢查。
攻擊者通過構造calldata,調用任意代幣的transferfrom,將其他用戶授權給該合約的代幣轉移到攻擊者地址。目前攻擊者將被盜資金兌換為ETH,並保存在攻擊者地址上,Beosin將對資金進行持續監控。