扫码下载
BTC $67,137.44 -1.50%
ETH $2,021.59 -1.43%
BNB $629.03 +0.24%
XRP $1.42 -4.56%
SOL $81.67 -4.53%
TRX $0.2795 -0.47%
DOGE $0.0974 -3.83%
ADA $0.2735 -4.22%
BCH $478.84 -3.97%
LINK $8.64 -2.97%
HYPE $28.98 -1.81%
AAVE $122.61 -3.42%
SUI $0.9138 -6.63%
XLM $0.1605 -4.62%
ZEC $260.31 -8.86%
BTC $67,137.44 -1.50%
ETH $2,021.59 -1.43%
BNB $629.03 +0.24%
XRP $1.42 -4.56%
SOL $81.67 -4.53%
TRX $0.2795 -0.47%
DOGE $0.0974 -3.83%
ADA $0.2735 -4.22%
BCH $478.84 -3.97%
LINK $8.64 -2.97%
HYPE $28.98 -1.81%
AAVE $122.61 -3.42%
SUI $0.9138 -6.63%
XLM $0.1605 -4.62%
ZEC $260.31 -8.86%

慢雾:跨链互操作协议 Nomad 桥攻击事件简析

2022-08-02 11:57:41
收藏

链捕手消息,据慢雾区消息,跨链互操作协议 Nomad 桥遭受黑客攻击,导致资金被非预期的取出。慢雾安全团队对该事件的分析如下:

1. 在 Nomad 的 Replica 合约中,用户可以通过 send 函数发起跨链交易,并在目标链上通过 process 函数进行执行。在进行 process 操作时会通过 acceptableRoot 检查用户提交的消息必须属于是可接受的根,其会在 prove 中被设置。因此用户必须提交有效的消息才可进行操作。

2. 项目方在进行 Replica 合约部署初始化时,先将可信根设置为 0,随后又通过 update 函数对可信根设置为正常非 0 数据。Replica 合约中会通过 confirmAt 映射保存可信根开始生效的时间以便在 acceptableRoot 中检查消息根是否有效。但在 update 新根时却并未将旧的根的 confirmAt 设置为 0,这将导致虽然合约中可信根改变了但旧的根仍然在生效状态。

3. 因此攻击者可以直接构造任意消息,由于未经过 prove 因此此消息映射返回的根是 0,而项目方由于在初始化时将 0 设置为可信根且其并未随着可信根的修改而失效,导致了攻击者任意构造的消息可以正常执行,从而窃取 Nomad 桥的资产。

综上,本次攻击是由于 Nomad 桥 Replica 合约在初始化时可信根被设置为 0x0,且在进行可信根修改时并未将旧根失效,导致了攻击可以构造任意消息对桥进行资金窃取。

app_icon
ChainCatcher 与创新者共建Web3世界