Tomcat是个运行在Apache上的应用服务器,支持运行Servlet/JSP应用程序的容器——能够将Tomcat看做是Apache的扩展,实际上Tomcat也能够独立于Apache运行。web
漏洞编号:tomcat
CVE-2016-1240安全
影响范围:服务器
Tomcat 8 <= 8.0.36-2ip
Tomcat 7 <= 7.0.70-2get
Tomcat 6 <= 6.0.45+dfsg-1~deb8u1it
受影响的系统包括Debian、Ubuntu,其余使用相应deb包的系统也可能受到影响。容器
漏洞概述:扩展
Debian系统的Linux上管理员一般利用apt-get进行包管理,CVE-2016-1240这一漏洞其问题出在Tomcat的默认的启动脚本中:/etc/init.d/tomcat* 利用该脚本,可致使攻击者经过低权限的Tomcat用户得到系统root权限!权限
# Run the catalina.sh script as a daemon
set +e
touch "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out
chown $TOMCAT7_USER "$CATALINA_PID""$CATALINA_BASE"/logs/catalina.out
本地攻击者,做为Tomcat用户(好比说,经过web应用的漏洞)若将catalina.out修改成指向任意系统文件的连接,当服务器重启或服务重启时Tomcat init脚本(root权限运行)会修改catalina.out连接任意文件的权限为Tomcat用户,利用这点执行任意脚本。公布的PoC利用在etc下建立ld.so.preload文件来加载攻击者的PoC并执行任意命令。
修复方案:
Debian安全团队已经修复了受影响的包;更新至系统提供的最新版Tomcat包便可。
临时解决方案:
能够在启动脚本中暂时删除权限修改的操做
chown $TOMCAT7_USER"$CATALINA_PID"
"$CATALINA_BASE"/logs/catalina.out
将这个语句注释掉, 在须要时手工进行权限的修改。