【漏洞预警】 cve-尊龙凯时官方旗舰店

漏洞发现人:" />
【漏洞预警】 cve-2016-1247:debian、ubuntu发行版的nginx本地提权漏洞
作者:安全客 发布时间:2016-11-17

漏洞发现人:dawid golunski

cve编号 :cve-2016-1247

发行日期 :15.11.2016

安全级别 :高

背景介绍

nginx是一个高性能的http和反向代理服务器,也是一个 imap/pop3/smtp 代理服务器。 nginx 是由 igor sysoev 为俄罗斯访问量第二的 rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类bsd许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,并在一个bsd-like 协议下发行。由俄罗斯的程序设计师igor sysoev所开发,其特点是占有内存少,并发能力强。

漏洞描述

debian、ubuntu发行版的nginx在新建日志目录的时,使用了不安全的权限,因此本地恶意攻击者可以从nginx/web用户权限(www-data)提升到root。

漏洞概要

debian发行版的nginx本地提权漏洞,该漏洞已经在1.6.2-5 deb8u3中修复

因为该漏洞细节是在官方修复后公布的,因此请低版本的debian/ubuntu用户及时更新补丁:

补丁修复情况:

debian:

在nginx 1.6.2-5 deb8u3中修复

ubuntu:

ubuntu 16.04 lts:

在1.10.0-0ubuntu0.16.04.3中修复

ubuntu 14.04 lts:

在1.4.6-1ubuntu3.6中修复

ubuntu 16.10:

在1.10.1-0ubuntu1.1中修复

漏洞细节

基于debian系统默认安装的nginx会在下面的路径使用下面的权限新建nginx日志目录
root@xenial:~# ls -ld /var/log/nginx/
drwxr-x--- 2 www-data adm 4096 nov 12 22:32 /var/log/nginx/
root@xenial:~# ls -ld /var/log/nginx/*
-rw-r----- 1 www-data adm 0 nov 12 22:31 /var/log/nginx/access.log
-rw-r--r-- 1 root root 0 nov 12 22:47 /var/log/nginx/error.log
我们可以看到/var/log/nginx目录的拥有者是www-data,因此本地攻击者可以通过符号链接到任意文件来替换日志文件,从而实现提权。

攻击者通过符号链接替换了日志文件后,需要等nginx daemon重新打开日志文件,因此需要重启nginx,或者nginx damon接受usr1进程信号。

这里亮点来了,usr1进程信号会在默认安装的nginx通过logrotate脚本调用的do_rotate()函数自动触发。

--------[ /etc/logrotate.d/nginx ]--------
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
[...]
do_rotate() {
start-stop-daemon --stop --signal usr1 --quiet --pidfile $pid --name $name
return 0
}
[...]
我们可以看到logrotation脚本会在corn中每天6:25am自动调用,因此如果/etc/logrotate.d/nginx已经设置了'daily'日志回滚,攻击者将在不需要任何系统管理员交互的情况下,在24小时内实现提权到root

漏洞验证截图

poc请见:


网站地图