首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Cosmos SDK锁定账户未授权资金转移漏洞分析

Cosmos SDK锁定账户未授权资金转移漏洞分析

原创
作者头像
qife122
发布2025-08-30 21:50:48
发布2025-08-30 21:50:48
960
举报

未授权代币从锁定账户转移 | HackerOne报告 #2976481

影响摘要

攻击者可以从其不拥有的锁定账户转移资金(如果账户有解锁资金,可能在锁定期结束后)。POC针对周期性锁定账户完成,但由于问题似乎存在于SendCoins中,且被所有锁定账户使用,因此更多锁定账户可能受到影响。当调用函数时,它从消息msg.Sender传递发送者,在checkSender中检查发送者==所有者。但问题在于msg.Sender未在任何地方验证,因为此消息被打包到MsgExecute中。执行时,它将原始发送者设置到上下文中。对于多签账户,它正确地从ctx中获取。至少在我查看的那些地方是这样。但这些锁定账户从消息中获取它,而它可以是任何值。

POC场景

我们首先在受害者处创建周期性锁定账户。锁定期较短,因此我们无需等待太久。

然后我们等待锁定期结束并将资金转移给攻击者。

复现步骤

需要Go和Rust

  1. 检出最新版本的cosmos-sdk并运行make build。注意二进制文件的路径,完成后替换setup_chain中的路径。
  2. 使用附加的Cargo.toml创建Rust项目。下载所有附加的*.rs文件并将其放入src文件夹。
  3. 确保setup_chain具有执行权限。运行./setup_chain。等待其启动,然后运行Rust项目。参见POC视频。

视频 F4027705: accounts.mov 209.60 MiB 放大 缩小 复制 下载

解决方法

似乎没有

支持材料/参考

  • setup_chain - 设置并启动链的脚本
  • main.rs, types.rs, client.rs, func.rs, msg.rs 和 Cargo.toml 攻击本身。抱歉文件较多。我可能会将其全部推送到某处并更新报告。
  • attack.mov - POC视频

影响

攻击者可以接管某人在锁定账户上锁定然后解锁的资金。POC特别演示了周期性锁定账户。但有理由相信更多锁定账户受到影响。

时间线

  • 2025年2月6日 12:42 UTC: unknown_feature 提交报告
  • 2025年2月6日 12:50 UTC: 更新漏洞信息
  • 2025年2月6日 12:52 UTC: 更改报告标题
  • 2025年2月6日 01:11 UTC: 提供补充文件链接
  • 2025年2月6日 02:57 UTC: 状态更改为已分类
  • 2025年2月7日 01:53 UTC: 严重性更新为高
  • 2025年2月7日 01:55 UTC: 团队已发布补丁
  • 2025年2月7日 07:25 UTC: 严重性从高更新为严重
  • 2025年2月25日 00:55 UTC: 奖励赏金,报告状态更改为已解决
  • 2025年5月30日 12:30 UTC: 请求披露此报告
  • 2025年6月29日 12:30 UTC: 报告已披露

严重性: 严重 (9 ~ 10)

弱点: 不当的访问控制 - 通用

CVE ID: 无

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 未授权代币从锁定账户转移 | HackerOne报告 #2976481
    • 影响摘要
    • POC场景
    • 复现步骤
    • 解决方法
    • 支持材料/参考
    • 影响
    • 时间线
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档