邮件里的 CSS 炸弹:偷令牌、控 AI 浏览器、盗密码

网页邮箱几十年来都在解决一个难题:如何把不可信的 HTML 安全地显示给用户。各家普遍依赖净化器(sanitizer)来过滤内容,但净化器认为安全的,和浏览器实际渲染的,往往存在落差——这正是漏洞的入口。
PortSwigger 研究员 Gareth Heyes 在过去几个月里,针对 Yahoo Mail、AOL Mail、Fastmail、ProtonMail、Gmail 与 Outlook 等客户端,系统性地挖掘解析器与净化器之间的偏差,并演示了如何突破信任边界、外泄令牌、攻陷第三方网站,甚至窃取密码。
一个典型手法是滥用 HTML 的 label 标签。它的 for 属性可以指向任意带 id 的表单元素,从而继承该元素的点击行为,而这一点常被净化器忽略。Heyes 在 Outlook 中找到一个真实缺陷:一封邮件就能控制 Outlook 的界面(微软至今未修复)。
更巧妙的是对 AI 浏览器的间接提示注入。OpenAI 推出 Atlas 浏览器后,Heyes 利用 CSS 的 :before 与 :after 伪元素,给受害者看一段法语、却给大模型看另一段指令——当用户用翻译功能时,Atlas 被诱导自动打开多个标签页,并通过网址片段把用户的名字发往远程服务器。
另一种攻击发生在「粘贴到草稿」时。若剪贴板里夹带恶意 CSS,粘进 AOL 或 Yahoo 邮件会触发一段竞态,让网页 CSS 绕过净化。借助嵌套属性选择器与背景图外泄,攻击者甚至能偷走 Medium「邮件登录」流程中 12 位十六进制令牌,直接登录他人账号。
Heyes 同时给出了防御思路与未来攻击形态。对普通用户而言,最务实的建议是:别直接粘贴来源不明的富文本,涉及敏感账户的登录链接更要多留个心眼。
来源:PortSwigger Research







