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
来源:金色财经