Forgejo ≤16.0.3 修复严重 RCE:模板变量展开可被用来执行任意进程
来源:codeberg.org — codeberg.org · 8 分 · by weierstass
📋 概述
Forgejo 发布 16.0.4,修复一个被评为严重的远程代码执行漏洞。问题出在「从模板仓库生成新仓库」的流程:系统克隆模板仓库、删除 .git 目录、对 .forgejo/template 中列出的文件执行变量模板展开,然后初始化新的 git 仓库。在此过程中,变量模板展开可被滥用去重新创建一个 .git 目录,git 在初始化新仓库时会采用并纳入该目录的内容,从而让恶意模板仓库能读取 Forgejo 宿主机上的任意数据,并在宿主机上执行任意进程。修复方式是在变量展开完成后、初始化 git 仓库之前,删除任何已存在的 .git 目录。同版本还修了一个权限绕过:在存在「允许维护者编辑」的 PR 时,受限的 API 访问令牌可以修改超出其权限范围的内容。
🔑 核心要点
- 漏洞点在从模板仓库生成新仓库时的变量模板展开环节。
- 可借展开重建 .git 目录并被 git 采用,形成远程代码执行。
- 后果包括读取宿主机任意数据与执行任意进程。
- 修复方式:展开完成后、初始化前移除任何已存在的 .git 目录。
- 同版本还修复了受限 API 令牌越权与草稿发布附件可被只读者读取等问题。
💡 金句
一个能被模板展开「写出来」的 .git 目录,就足以让 git 亲手把攻击者的代码装进仓库。
👍 0
👎 0
← 返回 Hacker News 首页