游客发表
Nginx官方在2025年2月发布的站点安全公告里,赫然列着一个编号为CVE-2025-23419的请求漏洞——Nginx的MP4模块在处理特定格式的请求时,存在跨站点请求伪造风险。伪造别急着划走,漏洞这可不是站点那种"理论上可能被攻击"的纸面漏洞。它直接影响的请求是那些用Nginx搭建流媒体服务、视频点播站点的伪造运维人员。说得直白点,漏洞如果攻击者构造一个恶意链接,站点诱导已登录后台的请求管理员点击,就能借管理员的伪造会话发起非预期的操作,比如篡改配置、漏洞删除缓存文件,站点甚至在某些配置不当的请求场景下执行更危险的动作。
这个漏洞的伪造根源出在Nginx对MP4文件请求的解析逻辑上。当服务器收到一个带有特殊构造的`/path/file.mp4?start=...&end=...`这类参数请求时,MP4模块会尝试解析时间戳偏移量。问题在于,它没有对参数中的外部来源标记做严格的同源校验。攻击者可以在自己的恶意网页里嵌入一个指向目标Nginx服务器的``标签或`
我见过不少运维组把Nginx当作纯粹的反向代理层,觉得"我们后面还有应用防火墙呢,怕什么"。但这次漏洞恰恰发生在Nginx自身模块里,意味着即使后端应用防护得固若金汤,Nginx这一层就直接被绕过了。更麻烦的是,MP4模块在默认编译选项里并不启用,但很多做视频业务的公司为了省流量,都会手动加上`--with-http_mp4_module`重新编译。一旦开了这个模块,且配置里允许对MP4文件执行范围请求,风险就真实存在了。
具体到攻击场景,假设你的视频管理后台地址是`admin.example.com`,攻击者在自己网站上放一个自动提交的表单,指向`admin.example.com/videos/delete.mp4?start=0&end=999999999`——表面看是请求视频片段,实际利用模块漏洞触发了文件删除逻辑。管理员只要在另一个标签页里挂着后台,访问了攻击者的页面,请求就静默发出了。整个过程不会有任何弹窗提示,日志里只显示一条正常的MP4访问记录。
修复方案倒不复杂。官方在2.6.3和1.27.4版本中修复了这个问题,核心是增加了对请求来源的校验。如果你暂时无法升级,临时缓解措施是检查Nginx配置里是否真的需要MP4模块——很多站点的所谓"视频点播"其实是通过后端转发实现的,Nginx根本不需要直接解析MP4。如果确认用不上,直接在编译参数里去掉这个模块,比任何补丁都干净。
这事给我的触动在于,Nginx素来以稳定高效著称,大家容易默认它不会出安全岔子。可现实是,任何暴露在公网的服务组件,哪怕是纯粹的静态文件服务器,只要功能模块里存在逻辑疏忽,就可能变成攻击跳板。升级补丁要排期,但检查自己到底开了哪些不必要的模块,今天就能做。别等到日志里出现异常请求才想起翻公告——那时候,攻击者可能已经比你更熟悉你的服务器了。
友情链接