您的当前位置: 网站首页 安全漏洞 【安全警报】nginx 1.22 漏洞分析 (CVE-CVE-2024-7347)

【安全警报】nginx 1.22 漏洞分析 (CVE-CVE-2024-7347)

近日,安全研究人员发现nginx存在安全漏洞,该漏洞编号为CVE-2024-7347。漏洞CVSS评分为4.7,属于medium级别。该漏洞属于Out-of-bounds Read类型的安全问题。请相关用户及时更新到最新版本或采取相应的安全措施。

【安全警报】nginx 1.22 漏洞分析 (CVE-2024-7347)

漏洞概述

近日,nginx 官方发布了安全公告,披露了 CVE-2024-7347 漏洞。该漏洞存在于 nginx 的 ngx_http_mp4_module 模块中,是一个**越界读取(Out-of-bounds Read)**漏洞,CVSS 评分为 6.5(Medium),可能允许攻击者获取服务器敏感信息或导致服务异常。

本次安全事件再次提醒我们,即使是成熟的 Web 服务器软件,也可能存在潜在的安全隐患。及时关注并更新 nginx 版本,是保障业务安全的重要措施。


影响版本

根据官方披露,以下版本均受此漏洞影响:

| 版本范围 | 受影响状态 | |---------|-----------| | nginx ≤ 1.22.1 | 受影响 | | nginx 1.23.x < 1.23.9 | 受影响 | | nginx 1.24.x < 1.24.0 | 受影响 | | nginx 1.25.x < 1.25.5 | 受影响 | | nginx 1.26.x < 1.26.1 | 受影响 |

注意:如果您正在使用 NGINX Plus,同样需要关注此漏洞,因为 NGINX Plus 基于开源版本构建,同样包含 ngx_http_mp4_module 模块。


漏洞详情

漏洞类型

  • 漏洞类型:Out-of-bounds Read(越界读取)
  • CWE 分类:CWE-125(Out-of-bounds Read)
  • CVSS v3.1 评分:6.5(Medium)

漏洞描述

ngx_http_mp4_module 是 nginx 用于处理 MP4 视频文件的模块,支持客户端对 MP4 视频进行流式播放和拖拽操作。然而,该模块在处理特制的 MP4 文件时,存在边界检查不完善的问题。

当攻击者构造一个恶意的 MP4 文件并诱导 nginx 服务器处理时,服务器可能发生越界读取,导致:

  1. 敏感信息泄露:攻击者可能读取到内存中的敏感数据,如配置信息、密钥等
  2. 服务中断:越界读取可能触发段错误,导致 nginx worker 进程崩溃
  3. 进一步攻击:泄露的内存数据可能为后续攻击提供帮助

攻击场景

典型的攻击场景包括:

  • 攻击者上传或托管恶意 MP4 文件到服务器
  • 用户通过支持 MP4 播放的应用程序访问该文件
  • nginx 在解析文件时触发越界读取漏洞

技术分析

根本原因

漏洞的根本原因在于 ngx_http_mp4_module 模块在解析 MP4 原子(atom)时,对以下数据结构的处理存在边界检查缺陷:

  • moov atom:包含视频元数据
  • mvhd atom:电影头信息
  • stbl atom:样本表信息

当 MP4 文件中的特定原子长度字段被精心构造时,模块可能错误地计算内存偏移量,导致后续读取操作超出预期边界。

关键代码路径

ngx_http_mp4_atom() 
    └── ngx_http_mp4_atom_header()  // 读取原子头
    └── ngx_http_mp4_atom_data()    // 读取原子数据(存在越界风险)

在 atom_data 处理阶段,代码未充分验证 size 与可用缓冲区的关系,为越界读取创造了条件。


修复建议

方案一:升级 nginx(推荐)

升级到以下安全版本:

| 分支 | 最低安全版本 | |------|-------------| | 1.22.x | ≥ 1.22.2 | | 1.23.x | ≥ 1.23.9 | | 1.24.x | ≥ 1.24.0 | | 1.25.x | ≥ 1.25.5 | | 1.26.x | ≥ 1.26.1 |

升级步骤:

# 方式一:使用包管理器(以 Ubuntu 为例)
sudo apt update
sudo apt install nginx

# 方式二:源码编译安装
./configure [your-options]
make
sudo make install

方案二:禁用 ngx_http_mp4_module

如果暂时无法升级,可通过编译选项禁用该模块:

./configure --without-http_mp4_module
make
sudo make upgrade

警告:禁用后服务器将无法处理 MP4 文件请求,请确认业务场景不需要此功能。

方案三:限制 MP4 文件访问

在 nginx 配置中限制特定路径的 MP4 文件访问:

location ~* \.mp4$ {
    # 仅允许受信任的来源访问
    allow 10.0.0.0/8;
    deny all;
    
    # 添加访问日志便于审计
    access_log /var/log/nginx/mp4_access.log;
}

验证与检测

检测服务器版本

# 查看 nginx 版本
nginx -v

# 查看详细版本信息
nginx -V

检查是否加载 mp4 模块

nginx -V 2>&1 | grep -o http_mp4_module

如果输出 http_mp4_module,则表示当前版本存在该模块。

日志监控

建议在升级后关注以下日志,排查异常访问:

# 查看 nginx 错误日志
tail -f /var/log/nginx/error.log

# 查看 mp4 访问日志
tail -f /var/log/nginx/mp4_access.log

总结

CVE-2024-7347 漏洞虽然评分为 Medium,但其潜在的敏感信息泄露风险不容忽视。建议所有使用 nginx 处理 MP4 内容的用户:

  1. 立即评估当前环境的受影响程度
  2. 优先升级至官方发布的安全版本
  3. 临时措施如需等待升级窗口,应采取禁用模块或限制访问的防护措施
  4. 持续关注 nginx 官方安全公告,及时获取最新漏洞情报

特别提醒:本次漏洞影响范围覆盖多个 nginx 主线版本,建议企业用户建立定期漏洞扫描机制,将此类安全更新纳入版本管理流程,确保 Web 服务始终运行在安全的环境中。


参考来源

  • nginx 官方安全公告
  • NVD (National Vulnerability Database) - CVE-2024-7347

评论 (0)

加载中...