安全生产简析下meerkat跑路事件 1、核心问题
1. AdminUpgradeabilityProxy天然的负面影响一加盟的逻辑合约可以被替换
2.AdminUpgradeabilityProxy权限没移交timelock一项目方不受时间锁约束,可以随意用1。所说的能力,替换逻辑合约最后项目方无限制地将正常合约替换成了攻击合约,卷款跑路。
2、现场还原(以B美元池为例)
1.项目方故意“坦诚”给出合约的timelock转移权限记录,展示的确实行了changeAdmin办法移交权限给timelock 地址,用于混淆视听
2.0x7E0c621Ea9F7aFD5b86A50B0942eAee68B04A61C proxy 合约,changeAdmin办法内部调用追踪到304行,实质写入key为ADMIN_ SLOT, 但读取key却为ADMIN_ SLOT。即O (欧)和0 (零)的一个细微差异,让changeAdmin办法完全失效,从而达到了已经移交权限的假象
3、结论和经验
1.高度警惕任何包括proxy 方法合约的项目,若未经timelock约束,合约有被瞬间替换的风险
2. never trust, always verify! 不要相信项目方给出的timelock“证据”, 对于未经审计的fork项目,务必逐个contract做好与原项目的diff (假如你做到了,就可以躲过meerkat的障眼法)