
11 月 4 日发生了一起安全事件,有人找到了一种上传恶意 Flash 帖子的方法。此后网站下线了一周,我们在此期间进行了响应。以下是事情的经过。
简而言之,有人发现了一个漏洞利用方式,可以上传一个包含 XSS 蠕虫的 Flash 文件。该蠕虫试图在网站上自我传播,并窃取任何查看被感染帖子的人的 IP 地址。网站在大约 6 分钟内就被关闭,因此实际损害非常有限。它主要做的事情就是获取了所有查看这些帖子的人的 IP。
该漏洞利用本身很快就被修复了,但很明显攻击者使用了 LLM 来找到这个漏洞,而且他们正在针对我们,如果我们过早让网站重新上线,他们会用 LLM 寻找其他漏洞。因此我们在接下来的一周里修复了所有能找到的安全问题,并整体上加强了安全防护,以确保这类事情不会再次发生。我们还利用这段下线时间做了一些早就该做、被拖延了很久的服务器维护和升级,这也花了两天时间。
一名攻击者上传了恶意的 Flash 帖子,该帖子除了其他行为外,还获取了你的 IP 地址并劫持你的账户来传播该文件。
服务器本身没有被入侵,文件本身也没有入侵你的电脑或类似的事情。它只是让攻击者在你查看被感染帖子时接管你的账户。它只影响了在网站上线的那 6 分钟窗口内查看该帖子的人。
它做了以下事情:
- 首先它播放了一段来自 hxxps://domain2doamin.duckdns.org/cdn/worm-video.flv 的视频。这会获取你的 IP 地址(这是攻击者的网站,所以不要在没有 VPN 的情况下访问该网站,它是一个 IP 抓取器)。
- 如果你是一个已登录用户,它会记录你的用户名,因此它会获取你的用户名和 IP。
- 接着它尝试为你的账户创建一个后门 API key。
- 这仅在你过去一小时内输入过密码的情况下才会成功。它只对 7 名最近登录过的用户做到了这一点。这些 API key 从未被使用过,并已被删除。
- 接着它使用你的账户发布自身的副本、给自身的其他副本点赞,并在论坛中发布指向自身的链接。
- 如果你是一个 approver 级别的用户,它还会批准自身的副本。
- 如果你是一名 moderator,它会尝试收集用户的电子邮件地址。它还尝试提升其他账户。
- 这两件事都没有成功,因为网站 mods 的账户被入侵之前网站就已经被关闭了。
- 最后,它尝试删除你所有的收藏。这些已被恢复。
- 被感染的帖子获得了大约 600 次页面浏览。并非所有这些浏览都实际触发了蠕虫。
- 大约 300 人实际运行了该蠕虫。其中 200 人处于登出状态,100 人处于登录状态。
- 这 200 名登出用户的 IP 被收集。
- 这 100 名登录用户的用户名和 IP 被收集,其账户被临时劫持以传播蠕虫。
- 48 名用户共有 1000 个收藏被删除。这些已被恢复。
- 7 名用户的后门 API key 被创建。这些已被删除。
- 68 份蠕虫副本被发布。它们全部已被删除。
- 被感染的帖子总共获得了大约 5000 次点赞。
- 创建了 129 条论坛帖子以帮助传播蠕虫。
上传 Flash 文件的功能已于 2021 年被禁用。在 2022 年上传流程重构后,它被意外地重新启用了。但你仍然无法上传 Flash 文件,因为另一个 bug 阻止了它。
在 2026-10-28,有人提交了一个 pull request 来修复一个 bug,该 bug 会导致上传在无法生成缩略图时失败。结果发现这就是攻击者,而通过修复这个 bug,我们无意中允许了 Flash 文件再次被上传。
这个 pull request 本身不包含任何恶意代码。它是对一个真实 bug 的真实一行修复。问题在于,我们并不知道,它所修复的这个 bug 恰恰是唯一阻止 Flash 文件上传的东西。
这是一连串的失败:
- 测试套件不够全面。最初禁用 Flash 上传时,没有添加测试来验证它们已被禁用。后来当它们被意外重新启用时,也没有被发现。
- 我们没有对用于播放 Flash 视频的 Ruffle 播放器进行沙箱隔离。我们没有这样做,是因为当时没有认识到这样做的必要性,因为新的 Flash 上传已经被禁用了。
- 我们被社会工程手段诱导,接受了一个恶意的 pull request。
- 最大的一点是:我们没有尽早使用 LLM 来审计代码库。攻击者比我们更快地采用 LLM 来寻找漏洞,我们不得不迅速追赶。在大约过去六个月里,AI 在寻找漏洞方面已经变得非常擅长,到了现在没有任何知识的人也能利用过去需要大量专业知识才能完成的漏洞利用的程度。
没有理由相信任何人的账户已被入侵。但如果你想确认:
- 前往你的 Settings 页面。
- 点击“Security”。
- 更改你的密码。
- 启用双因素认证(2FA)。
- 检查你的登录历史,看是否有任何可疑之处。
- 前往你的 Profile 页面,点击 API keys,检查是否有任何你不认识的密钥。
再次说明,服务器本身没有被入侵,也没有迹象表明任何账户已被持续攻陷。但检查你的账户并启用 2FA 不会有坏处。
由 evazion 更新于约 17 小时前