免费 iCloud 账号可伪装任意 @icloud.com 发件地址

SEC Consult 披露苹果 iCloud 邮件出站基础设施的两个伪造漏洞:持有免费 iCloud 账号的人可以发出显示为任意 @icloud.com 地址的邮件,并通过 SPF、DKIM 和 DMARC 校验。苹果已修复并支付赏金。

安全公司 SEC Consult 的漏洞实验室在 10 月 1 日发布报告,研究员 Timo Longin 在其中披露了苹果 iCloud 邮件出站基础设施的两个漏洞。借助这两个漏洞,任何持有免费 iCloud 账号的人都能发出显示为任意 @icloud.com 地址的邮件,并同时通过 SPF、DKIM 和 DMARC 三重校验。

正常情况下,登录提交服务器 smtp.mail.me.com 的 587 端口之后,用户不能发出 From 头与自己地址不同的邮件。苹果用一个专有的 From 头检查来拦截这类提交,返回的错误是"From address is not one of your addresses"。两个漏洞都绕过了这个检查。

第一个漏洞出在回车符换行注入。苹果内部有两个解析器处理同一封邮件:解析器一也就是校验层,会忽略冒号旁带有裸回车符的畸形 From 头,转而只校验攻击者的第二个、合法的那条 From 头;解析器二据邮件特征推测基于 Postfix,会剥掉回车符,把第一条头规范成合法的 From 头,于是中继出去的邮件就带上了被伪造的身份。攻击者还用 multipart/alternative 的边界,让合法地址不出现在邮件里。报告说,苹果的第一次修复据称依赖子串黑名单,比如把 admin 列入黑名单,并不充分。

第二个漏洞出在 SMTP 点填充处理不一致。第一次修复之后,研究者发现解析器一不遵守 RFC 5321 第 4.5.2 节的点填充删除规则,而解析器二会删除前导句点,于是".:"这样的序列再次造成两个解析器的理解分歧,伪造的 From 头又一次通过校验、并在中继之后显示成另一个身份。

校验之所以还能通过,是因为信封发件人和 Return-Path 仍是攻击者真实的 iCloud 地址:SPF 针对苹果自己的发送基础设施通过,报告观测到的发送地址是 17.57.155.19;DKIM 签名是在解析器二完成规范化之后、加在已经被伪造的邮件上的;DMARC 则通过与 icloud.com 的对齐通过。收件人因此会看到一封看似已认证、来自 tim.cook@icloud.com 或 no-reply@icloud.com 这类身份的邮件。报告把影响归为信任滥用:可用来做可信度较高的钓鱼、支付欺诈和商务邮件诈骗,以及凭据窃取。

时间线上,漏洞在 2024 年 5 月 21 日报告给苹果;第一个修复在 2025 年 5 月 24 日发布,但点填充的变体仍可利用;到 2025 年 11 月 12 日完全修复并经苹果确认。苹果支付了 1.5 万美元赏金,没有分配 CVE,也没有发布公开公告。