djangoci.com 上未经身份验证的远程代码执行漏洞

发表于 2019年5月15日 Django 安全和运维团队

昨天,Django 安全团队运维团队 获悉 Django 软件基金会的 Jenkins 基础设施中存在一个远程代码执行漏洞,该基础设施用于针对 GitHub pull requests 和发布分支运行 Django 代码库的测试。在这篇博文中,团队希望概述事件的经过。

影响

Django 安全和运维团队想保证,在任何时候都没有关于向 PyPI 或 Django 项目网站 发布或上传恶意 Django 版本的风险。官方 Django 版本一直都是由发布者手动发布的。同样,与 Django 项目网站或 Django 缺陷跟踪器 相关的任何用户数据也没有任何风险。

时间线

2019年5月14日 07:48 UTC Django 安全团队通过其 HackerOne 项目 收到 Ai Ho 的报告,指出 Django 的持续集成服务 易受 远程代码执行漏洞 的影响,允许未经身份验证的用户执行任意代码。

08:01 UTC,Django 安全团队确认了该报告,并立即采取措施通过关闭主 Jenkins 服务器来缓解该问题。Jenkins 主服务器在 08:10 UTC 关闭。

08:45 UTC,运维团队开始配置新的服务器。在服务器遭到入侵的情况下,清理它几乎总是不可行的。从全新的干净安装开始是一种更好更安全的方法。

14:59 UTC,新的 Jenkins 主服务器再次启动并运行,还有一些配置工作要做才能使 Jenkins 作业再次运行。大约 10 分钟后,15:09 UTC,情况就是这样。

15:44 UTC,Jenkins 再次开始针对 GitHub pull requests 运行测试。

16:00 UTC,运维团队讨论了撤销各种 Let's Encrypt 证书或密钥的必要性。但是,由于没有迹象表明帐户或证书的私钥被泄露,因此认为依赖 Let's Encrypt 证书的自动过期就足够了。但是,在新的 Jenkins 主服务器的引导过程中,为 djangoci.com 证书生成了一个新的私钥。

16:50 UTC,Jenkins Windows 节点再次运行并开始处理作业。

关于安全报告的常见说明

与往常一样,我们要求通过私人电子邮件向security@djangoproject.comHackerOne 报告潜在的安全问题,而不是通过 Django 的 Trac 实例或 django-developers 列表报告。请参阅 我们的安全策略 以获取更多信息。

返回顶部