专栏首页Debian中国CVE-2016-1247:Debian/Ubuntu发行版Nginx本地提权漏洞

CVE-2016-1247:Debian/Ubuntu发行版Nginx本地提权漏洞

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所开发,其特点是占有内存少,并发能力强。

漏洞发现人:Dawid Golunski

CVE编号  :CVE-2016-1247

发行日期  :15.11.2016

安全级别  :

(adsbygoogle = window.adsbygoogle || []).push({});

漏洞描述


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

文件链接: https://www.debian.cn/files/CVE-2016-1247.POC.sh


修复方案

升级为最新的Nginx软件包

https://www.debian.org/security/2016/dsa-3701

https://www.ubuntu.com/usn/usn-3114-1/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在 Debian Stretch 上安装 FFmpeg

    FFmpeg 是一款流行的多媒体框架,可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化...

    Debian社区
  • Wine 3.0发布:支持Android图形驱动、Direct3D 11、AES加密

    2018 年伊始,Wine(Wine Is Not an Emulator) 项目发布了年度更新,释出了最新的 3.0 稳定版本。 Wine 是一个在 Linu...

    Debian社区
  • 使用 tmate 分享你的终端会话

    tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时...

    Debian社区
  • matlab在64位的机子上不能运行notebook解决方法

    forrestlin
  • LeetCode 1255. 得分最高的单词集合(回溯)

    你将会得到一份单词表 words,一个字母表 letters (可能会有重复字母),以及每个字母对应的得分情况表 score。

    Michael阿明
  • 第162天:canvas中Konva库的使用方法

    半指温柔乐
  • 给小白的 Nginx 30分钟入门指南

    运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服...

    小小科
  • 日本网络安全部长从来没用过电脑,甚至不知道USB是什么

    我们经常说“专业的人做专业的事”,而日本一个表示没用过电脑,甚至不知道USB是什么的人却已经成为了网络安全部长,并且他将负责2020年东京奥运会网络安全的准备工...

    FB客服
  • 资源工具网址

    文档搜索引擎 jiumo search 鸠摩搜书:https://www.jiumodiary.com/

    chenchenchen
  • 开源一个iOS外包项目

    由于各种原因吧,也没有后续的更新,所以写了出来,需要学习或者初学的有需要的可以看一下,至少接口、后台目前还都是正常运行的。 (只提供学习用,不能使用该项目进行...

    Light413

扫码关注云+社区

领取腾讯云代金券