# Mailpit SMTP 头部注入漏洞
## 概述
Mailpit 的 SMTP 服务器在版本 1.28.3 之前存在邮件头注入漏洞,源于对 `RCPT TO` 和 `MAIL FROM` 地址使用的正则表达式过滤不充分。
## 影响版本
- 受影响版本:低于 1.28.3 的所有版本
- 修复版本:1.28.3
## 细节
漏洞原因是用于验证邮箱地址的正则表达式在字符类中未能正确排除 `\r` 和 `\n` 控制字符。攻击者可在邮箱地址中插入 `\r`(回车符),从而注入或破坏 SMTP 头部。
## 影响
攻击者可利用该漏洞注入任意 SMTP 头,可能导致邮件内容篡改、投递行为异常或绕过安全检查,影响邮件测试环境的安全性和准确性。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Release v1.28.3 · axllent/mailpit · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键漏洞信息
- ** GHSA-54wq-72mp-cq7c **
- **问题描述**:确保证SMTP `TO` 和 `FROM` 地址符合RFC 5322标准,防止header注入。
- ** GHSA-6jxm-fv7w-rw5j **
- **问题描述**:通过HTML检查API防止通过API的Server-Side Request Forgery (SSRF)。
### 其他更新
- **修正项**:
- 正确渲染在设置改变后的发布模式中的默认地址。
- 正确检测install.sh脚本中的macOS组。
- 使用纯文本认证时自动标记使用SMTP用户名。
- 根据RFC5321(第4.5.3.1节),验证电子邮件地址的最大长度。
- **测试项**:
- 通过长度限制和`@`字符更新标签测试。
- 增加SMTP测试,符合RFC 5322地址标准和防止header注入。
- 增加邮件长度验证测试,符合RFC5321(第4.5.3.1节)。
标题: SMTP Header Injection via Regex Bypass · Advisory · axllent/mailpit · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键漏洞信息
#### 漏洞描述
- **漏洞类型**: SMTP Header Injection via Regex Bypass
- **CVE ID**: CVE-2026-23829
- **CVSS v3.0**: 5.3/10
- **相关文件**: `mailpit/internal/smtpd/smtpd.go`
- **受影响版本**: <= v1.28.2
- **修复版本**: v1.28.3
#### 漏洞原因
- Mailpit SMTP服务器在验证`RCPT TO`和`MAIL FROM`地址时使用的正则表达式不足,导致攻击者可以通过在电子邮件地址中包含回车字符`\r`和行进字符`\n`注入任意SMTP头或破坏现有头。
#### 影响和风险
- **违反RFC 5321**: FTP 5321严格禁止Control Characters(CR, LF, Null)在Mailbox中出现。
- **数据损坏**: 允许`\r`会导致生成的`.eml`文件损坏,`Received`头损坏。
- **误用**: 这种行为无意于测试工具,且违反了SMTP核心协议。
#### 利用场景
- 当Mailpit构建`Received`头时,直接使用验证的收件人地址,导致攻击者可以注入如`INJECTED_VIA_CR: YES`的头,导致`Bare CR`的产生。
- **实际影响**: 原始邮件损坏,相关系统可能将其视为行中断,触发RFC失败。
#### 补丁与修复
- 更新正则表达式以显式排除`\r`和`\n`,或使用正确的字符类板以排除控制字符。
#### 相关分类和参考
- **CWE**: CWE-93, CWE-150, CWE-95
- **OWASP**: Injection Flaws
标题: Security: Ensure SMTP TO & FROM addresses are RFC 5322 compliant and … · axllent/mailpit@36cc06c · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息摘要
- **漏洞类型**: Header Injection
- **修复措施**: 确保 SMTP `TO` 和 `FROM` 地址符合 RFC 5322,防止 Header Injection 发生。
- **具体修复**:
- 添加了 `extractAndValidateAddress` 函数,用于从正则表达式匹配中提取并验证电子邮件地址。
- 对 `mailFromRE` 和 `rcptToRE` 的匹配结果进行了验证,确保它们符合 RFC 5322 标准。
- 引用了相关的 GitHub Security Alert: [GHSA-54wq-72mp-cq7c](GHSA-54wq-72mp-cq7c) 和 [GHSA-54wq-72mp-cq7c](GHSA-54wq-72mp-cq7c)。
- **受影响文件**: `internal/smtpd/smtpd.go`
- **提交信息**:
- 提交者: axllent
- 提交时间: 2 天前
- 提交分支: develop
- 版本: v1.28.3
- **代码变更统计**: 1 个文件变更,增加 23 行,删除 2 行。
暂无评论