通过截断的 SHA-256 碰撞和命令注入来破坏 OpenWrt 供应链

主要观点:安全工程师 RyotaK 发现 OpenWrt 的 sysupgrade.openwrt.org 服务存在安全问题,包括命令注入和 SHA-256 碰撞,通过一系列研究和测试成功利用这些漏洞,并向 OpenWrt 团队报告,团队迅速修复并通知用户。
关键信息

  • 命令注入:服务器使用容器隔离构建环境,但在处理用户提供的包时,Makefile 中对包含用户控制值的变量处理不当,导致可执行任意命令。
  • SHA-256 碰撞:用于生成请求哈希的方法中,包的哈希长度被截断为 12 位,容易产生碰撞,通过暴力破解 SHA-256 寻找碰撞。
  • 攻击结合:找到具有 12 位哈希碰撞的有效负载,触发命令注入并执行恶意脚本,覆盖生成的构建工件,可迫使用户升级到恶意固件。
  • 报告问题:向 OpenWrt 团队报告后,团队迅速停止服务并修复,发布公告通知用户。
    重要细节
  • 服务器代码位于 openwrt/asu,本地实例用于测试。
  • 暴力破解 SHA-256 时自制 OpenCL 程序性能不佳,使用 Hashcat 并进行修改以提高效率。
  • 计算哈希空间时曾出错,调整掩码模式后加快了速度。
  • Flatt Security 提供安全评估服务和 Shisho Cloud 工具。
阅读 8
0 条评论