nginx是一款流行的HTTP及反向代理服务器,同时也用作邮件代理服务器。其中,nginx 1.3.9-1.4.0版本文件http/ngx_http_parse.c代码中的ngx_http_parse_chunked()函数在对chunked的长度进行解析时未考虑到该值为负数的情况,导致后续发生基于栈的缓冲区溢出。远程攻击者无需认证即可利用此漏造成nginx拒绝服务,甚至执行任意代码。
解决方法:
绿盟科技建议站长升级到nginx 1.4.1或nginx 1.5.0。
但如果您不能立刻安装补丁或者升级,您可以采取以下措施以降低威胁:
* 在nginx配置文件中的每个server{}块中使用如下配置
if ($http_transfer_encoding ~* chunked) {
return 444;
}
未受影响版本:
nginx 1.5.0
nginx 1.4.1
官方公告和补丁:
链接:http://nginx.org/en/security_advisories.html
源码补丁下载:http://nginx.org/download/patch.2013.chunked.txt