10月11消息, 根據Debank 錢包插件Rabby的官方推特消息, 稱其swap 智能合存在漏洞(任意外部調用)。攻擊者繞過權限參數檢查,成功獲利了超19 萬美元。據最新交易跟踪監測, Rabby 攻擊者已將114 枚ETH 和179 枚BNB 轉入Tornado Cash。
攻擊者地址: 0xb687550842a24d7fbc6aad238fd7e0687ed59d55
部分攻擊交易: 0xce0935010baf445e300d4d600caac7fc1fecb5ccb092cdbef57904aa7e5408b2
攻擊細節:
下圖展示了RubbyRouter 合約中的_swap()例程的代碼片段(代碼來源: PeckShield審計報告),它被用來完成dexRouter中srcToken到dstToken的代幣交換。在78行的位置, 通過調用OpenZeppelin 庫中的functionCallWithValue() 方法進行swap. 但是對於傳入的參數, _swap() 方法的內部沒有進行參數相關的檢查。 Hyperlab安全實驗室建議對於調用函數應該做嚴格的權限限制,從而避開調用任意函數的隱患。
受漏洞合約影響需要被取消授權的地址(多鏈):
ETH: 0x6eb211caf6d304a76efe37d9abdfaddc2d4363d1
POLYGON : 0xf23b0f5cc2e533283ea97f7b9245242b8d65b26b
BSC: 0xf756a77e74954c89351c12da24c84d3c206e5355
AVAX: 0x509f49ad29d52bfaacac73245ee72c59171346a8
FTM: 0x3422656fb4bb0c6b43b4bf65ea174d5b5ebc4a39
OP: 0xd1a57cb694cf4941360a937d5f5633b363204e18
ARBITRUM: 0xf401c6373a63c7a2ddf88d704650773232cea391
GNOSIS: 0x5a0ab5d78c4d40e3a467a8bc52ce16cce88c999d
CRO: 0xa1b61f32a7c11e64df6b11d420d2bb7656f4b6ab
AURORA: 0x67832c40daf905ea5dde3fca036219e861a6bb8a
HMY: 0x563b6c3646e587caad54d57b5c0e98d7e99aeb4f
METIS: 0xb490f6a28eb43709410737dbdc1ffb4d3a5c4989
MOBM : 0xa166a168463c44c6c973c4f8adf97031d7b25499
NOVA : 0xe02504dcbc0721e7a4861c56b842c53e28dec84d
BOBA : 0x328fd59a417463af4b0a465794ad627d5fc90d7b
KLAY : 0xfcda4bd27e841dec3d8a49a3187f44757c8b9eac
ASTA : 0x563b6c3646e587caad54d57b5c0e98d7e99aeb4f
HECO : 0x275ad6133d7662e6feb70365c93d78363286dfcc
CELO : 0xc9f8a7d8cabb46135a90b9fa0ce58b75e8d15cc5
Hyperlab 安全實驗室認為:為了更好的用戶體驗,現在大多數的加密貨幣錢包及其他DApp應用(比如NFT,DeFi)都提供了便捷的一鍵授權功能。而這些授權功能在給用戶帶來便利的同時,埋了下很大的安全隱患,比如“代幣無限授權”。如果合約存在問題,那麼即便用戶沒有將資金存入到合約中,攻擊者也可以竊走用戶錢包內的資金。 Hyperlab建議,對於錢包用戶而言,定期檢查錢包的授權權限十分重要。用戶應及時取消不常用的授權功能。同時,對於應用開發者而言,加強合約審計也是降低安全風險的重要途徑之一。
以Rabby 錢包為例,RabbyRouter合約為用戶提供了在指定的DEX路由器中交換代幣的接口,使用過Rabby 錢包或者其swap功能的用戶盡快取消對Rabby 的授權。檢查及取消授權的步驟如下,
❖ - Go to "Security" -> "Token Approval"
❖ - Check out the total value of your token exposure
❖ - Search by token/protocol/address to find the risky approval
❖ - Decline approval in one click