OpenZeppelin审计发现Stellar智能账户规则选择降级漏洞
OpenZeppelin对Stellar合约库(RC v0.7.0)的审计揭示了一个高风险漏洞,存在于智能账户的授权模型中,允许赞助者在收集签名后静默降级上下文规则。在Soroban(Stellar基于Rust的智能合约平台)中,宿主计算交易的signature_payload,而包含规则ID的auth_payload由用户提供。由于签名是对原始signature_payload进行验证,而未提交规则选择,恶意赞助者可以在获取签名后交换context_rule_ids,从而绕过更严格的策略(如多重签名阈值或支出限制)。修复方案引入了auth_digest,将规则选择加密绑定到签名数据,防止意外的规则降级。此漏洞凸显了在离线签名和交易组装分离的系统中,必须将所有安全参数包含在签名载荷中。
关键事实
- Stellar Soroban授权将宿主计算的签名载荷与用户提供的规则ID分离。
- 漏洞允许签名后交换规则ID,绕过更严格的策略。
- 修复方案将规则选择绑定到auth_digest以防止静默降级。
- 另增加了对未在选定规则中的签名者的检查。
KeyAudit 数据视角
📊 KeyAudit 数据库:Stellar 历史泄露记录 1706015 条