CVE-2026-27654 是一个存在于 ngx_http_dav_module 模块中的缓冲区溢出漏洞,主要影响配置了特定指令的 Nginx 服务。
以下是受该漏洞影响的 Nginx 版本详情:
| 产品 | 受影响版本 | 修复版本 |
|---|---|---|
| Nginx Open Source (开源版) | 1.29.0 至 1.29.6 0.5.13 至 1.28.2 |
1.29.7 或 1.28.3 及以上版本 |
| Nginx Plus (商业版) | R36 (R36 P2及以下) R35 (R35 P1及以下) R34 (所有版本) R33 (所有版本) R32 (R32 P4及以下) |
R36 P3、R35 P2、R32 P5 或后续更新版本 |
技术细节与风险
-
触发条件:该漏洞在同时满足以下三个配置条件时才可能被利用:
-
启用了
dav_methods指令,并允许COPY或MOVE方法。 -
使用前缀匹配(非正则表达式)的
location块。 -
在
location块内使用了alias指令。
-
-
潜在影响:成功利用此漏洞可能导致 Nginx 工作进程崩溃(引发拒绝服务),或被攻击者用于篡改文档根目录之外的文件名。
-
风险缓解:由于 Nginx 工作进程通常以低权限用户身份运行,该漏洞对系统完整性的影响相对有限,但服务可用性风险较高。
处置建议
-
升级版本:最彻底的解决方案是将 Nginx 升级至上述“修复版本”列中对应的安全版本。
-
临时措施:若无法立即升级,建议检查配置文件,在满足上述条件的配置块中暂时禁用
COPY和MOVE方法,或调整location的匹配方式。 -
>宝塔面板用户:宝塔官方今日(4.17日)正式更新应用商店nginx版本,和nginx官方进行同步,最新版为1.30.0
对于官方已停止技术支持(EoTS)的旧版本,F5 官方未进行评估,建议直接升级至有修复补丁的稳定版本;
检查是否启用了dav_methods指令,主要分为两步:先确认Nginx是否编译了ngx_http_dav_module模块,再确认配置文件中是否写入了该指令。
步骤一:确认Nginx是否包含ngx_http_dav_module模块
这是最关键的一步。如果Nginx在编译时没有包含这个模块,那么即使在配置文件中写了dav_methods,Nginx也会报错unknown directive "dav_methods"并无法启动。
请在终端中执行以下命令来检查:
-
如果命令输出
with-http_dav_module:说明你的Nginx已经包含了该模块,可以进行下一步的配置检查。 -
如果命令没有任何输出:说明当前Nginx不支持
dav_methods。
特别提示(Windows用户)
官方提供的Windows版本Nginx默认不包含此模块。
步骤二:检查配置文件中的dav_methods指令
如果模块确认存在,下一步就是在配置文件中搜索dav_methods指令。
-
定位配置文件:Nginx的主配置文件通常是
nginx.conf,也可能在/etc/nginx/conf.d/或/etc/nginx/sites-enabled/目录下。 -
搜索指令:使用
grep命令可以快速查找。例如,在/etc/nginx/目录下执行: -
分析配置:找到
dav_methods指令后,根据CVE-2026-27654漏洞的触发条件,你需要重点关注它是否同时满足以下三点:-
dav_methods指令的值不是off,并且明确包含了COPY或MOVE方法。 -
该指令位于一个使用前缀匹配(即没有使用正则表达式
~或~*)的location块中。 -
在这个
location块内,同时使用了alias指令。
-
例如,下面这段配置就满足所有条件,属于风险配置:
location /docs/ { # 前缀匹配的 location
alias /data/webdav/; # 使用了 alias 指令
dav_methods PUT DELETE COPY MOVE; # 启用了 COPY 和 MOVE 方法
# ... 其他配置
}
总结与建议
-
若你已满足所有条件:请立即按照上一条回复中的建议,升级Nginx版本或调整配置。
-
若检查后不符合条件:你的服务在当前配置下不受此漏洞影响。
周涛博客








评论前必须登录!
注册