这次漏洞是 Debian 自身提供的 tomcat 包的漏洞,也就是 tomcat deb 包的漏洞,并非 tomcat 官方的漏洞。Debian 下使用 apt-get 安装 tomcat 的用户必须提高注意。
该包提供做成服务的 tomcat.ini 脚本,该初始化脚本对 catalina.out 做了 chown 操作:
touch "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out
chown $TOMCAT7_USER "$CATALINA_PID" "$CATALINA_BASE"/logs/catalina.out
Debian 官方已经为此提供了补丁(Debian 提供的 tomcat7 需要修改 tomcat7.init、tomcat7.postinst 两个文件)。
Debian 提供 tomcat7 下载地址:
https://packages.debian.org/source/jessie/tomcat7
我们的生产系统是 Redhat6,生产所用 tomcat 下载自 Apache 官方,既没有使用 Debian 提供的 ini 脚本也没有使用系统服务启动的方式。
也就是说我们在启动 tomcat 的时候没有去做任何文件所有者的修改操作(我们 tomcat 用户在不去获取 root 权限的情况下就可以做所有事情)。
所以我们不受此影响。
参考资料
- CVE-2016-1240 (CVE)
- CVE-2016-1240 (Debian)
- CVE-2016-1240 (Redhat)
- Bug 1376712 - (CVE-2016-1240) CVE-2016-1240 tomcat: unsafe chown of catalina.log in tomcat init script allows privilege escalation
- Red Hat Bugzilla – Attachment #1201569: Debian patch for tomcat7 for bug #1376712