一、漏洞描述

Apache Tomcat软件是Jakarta Servlet、 Jakarta Server Pages、 Jakarta Expression Language、 Jakarta WebSocket、 Jakarta Annotations和 Jakarta Authentication 规范的开源实现 。Apache Tomcat实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat 服务器作为一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。2023 年 3 月 22日安全机构发布 Apache Tomcat 存在安全漏洞,该漏洞源于用户代理能通过不安全的通道传输会话 cookie导致信息泄露,相关分析这是由于在请求https的时候可重定向到http连接,这个过程会导致会话劫持风险,造成Cookie或Session不安全传输,攻击者可利用该漏洞可在未授权的情况下泄漏 Cookie 或 Session,最终造成服务器敏感性信息泄露。

基本信息:漏洞类型敏感信息泄露 CVE编码:CVE-2023-28708 cvss评分:4 威胁等级:中危 公布时间:2023-03-22 00:00:00 影响范围:现场版本为 tomcat 9.0.46

11.0.0-M1 ≤ Apache Tomcat ≤ 11.0.0-M2 10.1.0-M1 ≤ Apache Tomcat ≤ 10.1.5 9.0.0-M1 ≤ Apache Tomcat ≤ 9.0.71 8.5.0 ≤ Apache Tomcat ≤ 8.5.85

二、漏洞处理

1)版本确认

#Windows 执行:

catalina version

#linux

sh ./bin/version.sh

2)官方修复建议

当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。各个版本链接如下:

Apache Tomcat 11系列: https://tomcat.apache.org/download-11.cgi Apache Tomcat 10系列: https://tomcat.apache.org/download-10.cgi Apache Tomcat 9系列: https://tomcat.apache.org/download-90.cgi Apache Tomcat 8系列: https://tomcat.apache.org/download-80.cgi

因现场使用tomcat 9.0.46,升级到最新版即:9.0.76,考虑到厂商环境,暂升级到9.0.75版;

另可参考官方的修复commit:

3)升级

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.75.tar.gz

tar -xzf apache-tomcat-9.0.75.tar.gz

#备份

cp -r /tomcat9/bin/ /tomcat9/bin_bak

cp -r /tomcat9/lib/ /tomcat9/lib_bak

#停止老版本tomcat

sh /tomcat9/bin/shutdown.sh

#替换

mv apache-tomcat-9.0.75 apache-tomcat-9

mv /tomcat9/bin /tomcat9/bin_old

mv /tomcat9/lib /tomcat9/lib_old

cp ./apache-tomcat-9/bin /tomcat9/

cp ./apache-tomcat-9/lib /tomcat9/

#开启热加载和热部署

vim ./tomcat9/conf/server.xml #Host标签中加上一个配置

#reloadable="true"

……

#autoDeploy="true",开启热部署

#.启动新版本tomcat

sh /tomcat9/bin/startup.sh

#验证

sh /tomcat9/bin/version.sh

三、附录

1)热加载 vs 热部署

热加载: 热加载的实现的方式在Web容器中启动一个后台线程,定期检测相关文件的变化,如果有变化就重新加载类,这个过程不会清空Session。过程中,服务器会监听 class 文件改变,包括web-inf/class,wen-inf/lib,web-inf/web.xml等文件,若发生更改,则局部进行加载,不清空session ,不释放内存。开发中用的多,但是要考虑内存溢出的情况。Tomcat默认情况下是不开启热加载的。 热部署: 热部署是在Web应用后台线程定期检测,发现有变化就会重新加载整个Web应用,这种方式会彻底会清空Session。这种方式整个项目就相当于从新部署,包括从新打个.war 文件。 会清空session ,释放内存。Tomcat在启动的时候会将其目录下webapp中war包解压后然后封装为一个Context供外部访问。那么热部署就是在程序运行时,如果我们修改了War包中的东西。那么Tomcat就会删除之前的War包解压的文件夹,重新解压新的War包。项目打包的时候用的多。热部署更多的是在生产环境中使用,就是适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等。开发环境可直接在Eclipse的Server里面直接配置publishing。

更多参看:https://blog.csdn.net/qq_24313635/article/details/114281148

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: