漏洞描述
在 Debian Linux 系统上,管理员通常使用 apt-get 进行包管理。Tomcat 程序在安装 deb 包时,会自动为管理员安装一个启动脚本 /etc/init.d/tomcat\*
。攻击者可利用该脚本,以低权限的 Tomcat 用户获得系统 root 权限。
本地攻击者可以通过 Web 应用漏洞先获得 Tomcat 用户,然后将 catalina.out
修改为指向任意系统文件的链接。在服务重启后,Tomcat init 脚本(root 权限运行)再次打开 catalina.out
文件时,攻击者就可获取 root 权限。
受影响范围
- Tomcat 8 <= 8.0.36-2
- Tomcat 7 <= 7.0.70-2
- Tomcat 6 <= 6.0.45 + dfsg-1 ~ deb8u1
受影响的系统包括 Debian、Ubuntu,其他使用相应 deb 包的系统也可能受到影响。
修复方案
更新至官方提供的最新版 Tomcat 包。
在 Tomcat 的启动脚本中加入
-h
参数,防止其他文件所有者被更改。chown -h $TOMCAT6_USER "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out