浏览 308
原文链接:NGINX 安全漏洞通报
转载来源:NGINX 中文社区
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
当 NGINX Plus 或 NGINX OSS 配置使用 HTTP/3 QUIC 模块时,攻击者可能能够伪造其源 IP 地址,从而达到绕过授权或绕过速率限制的目的。(CVE-2026-40460)
此漏洞使得远程未经验证的攻击者能够伪造其源 IP 地址,绕过授权机制,或者能够对 NGINX 系统造成拒绝服务(DoS)攻击。
没有缓解措施;可以在“监听”指令中禁用 QUIC 功能。
6.5 中
数据平面
NGINX Plus / ngx_quic_module、NGINX Open Source / ngx_quic_module
NGINX Plus / R32 - R36、NGINX Open Source / 1.25.0 - 1.30.1
NGINX Plus / R36 P4、R32 P6、NGINX Open Source / 1.31.0
NGINX Plus 和 NGINX 开源版在 ngx_http_ssl_module 模块中存在一个漏洞,当 ssl_verify_client 指令设置为“on”或“optional”, ssl_ocsp 指令设置为“on”或叶节点参数配置了解析器时该漏洞会被触发。在这种配置下,未认证的攻击者可以发送超出其控制范围的请求,这可能会导致 NGINX 工作进程出现堆使用后释放错误。此漏洞可能导致 NGINX 工作进程重启、有限范围内的数据修改或产生其他潜在影响。(CVE-2026-40701)
此漏洞可能使远程攻击者能够对 NGINX 工作进程中的数据进行有限的修改控制、导致系统崩溃以及引发其他潜在影响。
为了降低风险,可以使用“ssl_ocsp_responder”指令来专门设置OCSP响应器地址。如需更多信息,请参考“ngx_http_ssl_module”模块的“ssl_ocsp_responder”部分。如果无法指定OCSP响应器,可以通过确保NGINX系统所使用的DNS服务器能够快速解析OCSP响应器的名称来限制这种风险的影响。为此,可以使用本地DNS服务器并缓存主机名。这并不能完全解决该问题,但可能会降低其发生的概率。另外,可以从使用OCSP切换到使用CRL文件。CRL文件可以使用“ssl_crl”指令进行指定。如需更多信息,请参考“ngx_http_ssl_module”模块的“ssl_crl”部分。注意:F5 建议在部署到生产环境前对所有修改进行测试,并在维护窗口期间进行更改。
4.8 中
数据平面
NGINX Plus / ngx_http_ssl_module、NGINX Open Source / ngx_http_ssl_module
NGINX Plus / R32 - R36、NGINX Open Source / 1.19.0 - 1.30.0
NGINX Plus / R36 P4、R32 P6、NGINX Open Source / 1.31.0、1.30.1
当使用“proxy_http_version 2”以及“proxy_set_body”来配置 NGINX 开源版以代理 HTTP/2 流量时,攻击者可能能够向上游服务器注入伪造的帧头和数据包字节。 (CVE-2026-42926)
此漏洞使得远程未经身份验证的攻击者能够向上游连接中注入任意的 HTTP/2 帧头和数据字节。这可能会导致 NGINX 与上游的 HTTP/2 对等端之间出现同步失步的情况。
为降低风险,需同时执行以下两项操作:
5.8 中
数据平面
NGINX Open Source / ngx_http_proxy_v2_module
NGINX Open Source / 1.29.4 - 1.30.0
NGINX Open Source / 1.31.0、1.30.1
NGINX Plus 和 NGINX 开源版在 ngx_http_charset_module 中存在一个漏洞。当配置了 charset、source_charset、charset_map 和 proxy_pass 并且禁用了缓冲功能(使用“proxy_buffer off”指令)时,未认证的攻击者可以发送超出其控制范围的请求,从而导致 NGINX 工作进程中的堆缓冲区溢出,进而可能导致有限的内存泄露或系统崩溃。(CVE-2026-42934)
此漏洞可能使远程攻击者能够获得有限的控制权,从而能够泄露内存内容或导致 NGINX 工作进程崩溃。
没有缓解措施;但那些未通过 charset_map 重新编码为 UTF-8 格式的 NGINX 配置则不受影响。
4.8 中
数据平面
NGINX Plus / ngx_http_charset_module、NGINX Open Source / ngx_http_charset_module
NGINX Plus / R32 - R36、NGINX Open Source / 0.3.50 - 1.30.0
NGINX Plus / R37.0.0、R36 P4、R32 P6、NGINX Open Source / 1.31.0、1.30.1
NGINX Plus 和 NGINX 开源版本在 ngx_http_rewrite_module 中存在一个漏洞。当配置了rewrite指令,随后是rewrite/set/if指令以及未命名的 PCRE 捕获($1、$2 等)且替换字符串中包含 '?' 时,未认证的攻击者可以通过发送精心构造的 HTTP 请求来利用此漏洞,并导致 NGINX 工作进程中的堆缓冲区溢出,从而造成有限的数据修改和系统崩溃。(CVE-2026-42945)
此漏洞可能使远程攻击者能够对数据的修改进行有限控制,并导致 NGINX 工作进程崩溃。
为降低此漏洞影响,在重写定义中使用命名捕获而非未命名捕获。
例如,以下重写指令使用未命名的 PCRE 捕获组 $1 和 $2:
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
要针对此示例降低此漏洞的影响,请将 $1 和 $2 替换为适当的命名捕获,即 $user_id 和 $section:
rewrite ^/users/(?<user_id>[0-9]+)/profile/(?<section>.*)$ /profile.php?id=$user_id&tab=$section last
8.1 高
数据平面
NGINX Plus / ngx_http_rewrite_module、NGINX Open Source / ngx_http_rewrite_module
NGINX Plus / R32 - R36、NGINX Open Source / 1.0.0 - 1.30.0、0.6.27 - 0.9.7
NGINX Plus / R36 P4、R32 P6、NGINX Open Source / 1.31.0、1.30.1
NGINX ngx_http_scgi_module和 ngx_http_uwsgi_module漏洞
在 ngx_http_scgi_module 和 ngx_http_uwsgi_module 模块中存在一个漏洞,可能会导致内存过度分配和不必要的内存复制的情况发生。当配置了 scgi_pass 或 uwsgi_pass 时,如果收到精心设计的响应或者中间人(MITM)位置的未认证攻击者控制的来自上游服务器的响应,可能会导致 NGINX 工作进程的崩溃或大量内存的泄露。(CVE-2026-42946)
此漏洞可能使远程攻击者能够导致 NGINX 工作进程崩溃或泄露其大量内存内容。
无。确保 SCGI 和 uWSGI 后端服务器的安全性。
6.5 中
数据平面
NGINX Plus / ngx_http_scgi_module and ngx_http_uwsgi_module、NGINX Open Source / ngx_http_scgi_module and ngx_http_uwsgi_module
NGINX Plus / R32 - R36、NGINX Open Source / 1.19.0 - 1.30.0、0.8.42 - 0.9.7
NGINX Plus / R36 P4、R32 P6、NGINX Open Source / 1.31.0、1.30.1
当js_fetch_proxy指令中配置了至少一项可由客户端控制的 NGINX 内置变量(例如$http_*、$arg_*、$cookie_*类变量),且存在某个站点配置块通过 NGINX JavaScript 调用ngx.fetch()接口时,NGINX JavaScript 模块存在安全漏洞。未授权攻击者可通过发送精心构造的 HTTP 请求利用该漏洞,会造成 NGINX 工作进程发生堆缓冲区溢出,进而引发进程异常重启。若目标系统关闭了地址空间布局随机化(ASLR)防护机制,或是攻击者成功绕过 ASLR 防护,还可借助该漏洞在受害主机上执行任意代码。(CVE-2026-8711)
影响数据平面,未经认证的攻击者可利用此漏洞触发堆缓冲区溢出,导致 DoS 或代码执行。
无
High/8.1 (CVSS v3.1)、Critical/9.2 (CVSS v4.0)
数据平面
NGINX JavaScript (njs) / ngx_http_js_module
NGINX JavaScript 0.9.4 - 0.9.8
NGINX JavaScript 0.9.9
仅影响NGINX JavaScript (njs),对其它NGINX产品没有影响。
NGINX Plus 与开源版 NGINX 的ngx_http_rewrite_module(HTTP 重写模块)存在安全漏洞。当rewrite指令使用存在重叠捕获分组的 PCRE(兼容 Perl 正则表达式)正则表达式(示例:^/((.*))$),且在重定向或参数配置场景下,替换字符串多次引用上述重叠捕获变量(示例:$1$2)时,漏洞触发条件成立。
在满足特定外部环境条件下,未授权攻击者可通过发送恶意构造的 HTTP 请求利用此漏洞,触发 NGINX 工作进程堆缓冲区溢出,造成服务进程异常重启;若目标服务器未开启 ASLR(地址空间布局随机化)防护,或攻击者可绕过 ASLR 防护机制,该漏洞还可能被用于远程执行恶意代码。(CVE-2026-9256)
该漏洞可使远程攻击者对 NGINX 系统发起拒绝服务(DoS)攻击,或有可能实现代码执行。漏洞不涉及控制面安全风险,仅影响数据面。
在 rewrite 规则中使用命名捕获组替代匿名捕获组
示例中这条 rewrite 指令采用了 PCRE 匿名捕获分组,通过$1、$2引用捕获内容:
rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
针对该示例修复漏洞:将$1、$2替换为对应的命名捕获变量$user_id与$section,修改后配置:
rewrite ^/users/(?<user_id>[0-9]+)/profile/(?<section>.*)$ /profile.php?id=$user_id&tab=$section last;
High/8.1 (CVSS v3.1) 、Critical/9.2 (CVSS v4.0)
数据平面
NGINX Plus / R32 - R36、37.0.0、NGINX Open Source / 1.0.0 - 1.30.0、1.31.0、0.1.17 - 0.9.7
NGINX Plus / R36 P5、R32 P7、NGINX Open Source / 1.31.1、1.30.2
如果您正在运行受影响版本列中列出的版本,可通过安装修复版本列中对应的版本来消除该漏洞。
若修复版本列中未列出您所在版本分支的修复版本,则该分支目前暂无可用更新,F5 建议您升级至已包含修复的版本。
若已引入修复版本列中,在同一分支下列出的版本早于您当前运行的版本,则说明您所用版本已包含该修复。
如果您需要 F5 提供专业服务支持或者NGINX Plus商业版软件,请致电 F5 4009918366 或与 F5 商务取得联系。
NGINX 唯一中文官方社区 ,尽在 nginx.org.cn
更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号 | B 站

按点赞数排序
按时间排序
微信公众号
加入微信群