【中危】NGINX ngx_mail_smtp_module 内存越界读取漏洞
漏洞描述
NGINX是一个开源的、高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。它被广泛应用于构建高并发、高可用的Web服务。
受影响版本中,当NGINX配置了ngx_mail_smtp_module模块,并且smtp_auth指令设置为none方法时,在SMTP认证过程中,若认证服务器返回 Auth-Wait 响应,攻击者可利用认证错误处理缺陷触发内存越界读取,导致服务器向认证服务器泄露任意数据。
修复版本中通过改进plain/login/cram-md5认证方法的错误处理,确保在解码错误后会话状态的一致性;重置smtp_auth none配置下过期的认证凭据,防止利用旧凭据进行内存过读;以及改进错误日志记录,确保即使在缺少登录信息时也能正确记录上游认证服务器的错误,从而修复该漏洞。
| MPS编号 | MPS-lc4m-0q6k |
|---|---|
| CVE编号 | CVE-2025-53859 |
| 处置建议 | 可选修复 |
| 发现时间 | 2025-08-13 |
| 利用成本 | 高 |
| 利用可能性 | 中 |
| 是否有POC | 否 |
影响范围
| 影响组件 | 受影响的版本 | 最小修复版本 |
|---|---|---|
| nginx | [0.7.22, 1.29.1) | 1.29.1 |
参考链接
https://github.com/nginx/nginx/pull/842
https://my.f5.com/manage/s/article/K000152786
https://www.oscs1024.com/hd/MPS-lc4m-0q6k
https://nvd.nist.gov/vuln/detail/CVE-2025-53859
排查方式
手动排查
检查NGINX版本:执行nginx -v确认版本是否在[0.7.22, 1.29.1)范围内;检查是否启用ngx_mail_smtp_module:查看nginx配置文件(如nginx.conf)是否存在mail配置块且编译时包含该模块;检查smtp_auth设置:在mail配置的smtp部分确认是否有smtp_auth none;指令。
一键自动排查全公司此类风险
墨菲安全为您免费提供一键排查全公司开源组件漏洞&投毒风险服务,可一键接入扫描全公司的代码仓库、容器镜像仓库、主机、制品仓库等。
试用地址:https://www.murphysec.com/adv?code=FEAH
提交漏洞情报:https://www.murphysec.com/bounty
处置方式
应急缓解方案
- 检查NGINX配置文件中是否存在
ngx_mail_smtp_module模块启用及smtp_auth none配置 - 若存在上述配置,将
smtp_auth指令修改为非none的认证方法(如”plain”、”login”或”cram-md5″) - 若无需SMTP代理功能,通过重新编译或配置调整禁用
ngx_mail_smtp_module模块 - 执行
nginx -t验证配置有效性后重启NGINX服务
根本修复方案
- 升级NGINX至1.29.1或更高安全版本,从官方渠道获取源码或二进制包
- 升级前备份现有配置文件及证书等关键数据
- 使用官方推荐方式进行升级(源码编译需确保依赖环境匹配)
- 升级完成后执行
nginx -v确认版本,并通过nginx -t验证配置兼容性 - 重启NGINX服务并监控服务状态及错误日志