Gogs是一个开源的轻量级Git服务,曾存在一个严重的任意用户登录漏洞(CVE-2018-18925),允许攻击者无需密码即可登录任意用户账户。
该漏洞存在于Gogs的会话处理机制中,具体问题如下:
获取目标用户ID:
/api/v1/users/{username}
构造恶意Cookie:
{userid}_{random_string}
victimid_anything
的Cookie设置伪造的Cookie:
document.cookie = "i_like_gogs=victimid_anything; path=/; domain=target.com";
访问目标账户:
Gogs官方已发布修复版本,主要改进包括:
会话ID增强:
会话验证:
修复版本:
对于Gogs管理员: - 立即升级到最新版本 - 定期检查安全公告
对于开发者: - 避免使用可预测的会话ID - 实现完善的会话验证机制 - 考虑使用标准的安全会话管理库
此漏洞展示了会话管理不当可能导致的严重后果。即使是开源项目也可能存在此类基本安全缺陷,强调了持续安全审计和及时更新的重要性。