Apache Tomcat 信息泄露漏洞CVE-2024-21733、CVE-2024-24549和CVE-2024-34750排查处理

一、漏洞描述

Apache Tomcat作为一个流行的开源Web服务器和Java Servlet容器并用于很多中小型项目的开发中。其中,Coyote作为Tomcat的连接器组件,是Tomcat服务器提供的供客户端访问的外部接口,客户端通过Coyote与服务器建立链接、发送请求并且接收响应。

在这里插入图片描述

近日发现Apache Tomcat中修复了一个信息泄露漏洞(CVE-2024-21733)。Apache Tomcat版本9.0.0-M11 - 9.0.43、8.5.7 - 8.5.63中均存在该信息泄露漏洞,由于coyote/http11/Http11InputBuffer.java中在抛出CloseNowException异常后没有重置缓冲区位置和限制,威胁者可可以通过构造特定请求,发送不完整的POST触发错误响应,从而可能导致获取其他用户先前请求的数据,造成信息泄露。

漏洞名称:Apache Tomcat 信息泄露漏洞,关联漏洞:CVE-2024-24549、CVE-2024-34750
漏洞编号:CVE-2024-21733
漏洞等级:高危
安全建议:目前该漏洞已经修复,受影响用户可升级到以下版本:

Apache Tomcat >= 9.0.44
Apache Tomcat >= 8.5.64

关联资源spring官网tomcat官网mvn仓库Tomcat安全中心Nist网站

二、排查处理

现场的为中小型项目,未直接使用功能tomcat作为容器使用,仅是jar包里spring-boor框架引入tomcat 内嵌到 web项目中作为web server使用,从而保证项目包可直接运行 webapp项目,无需再部署到额外的tomcat服务了;

现场用的SpringBoot,内部集成了spring的很多模块,比如tomcat、redis等。用SpringBoot搭建项目,只需要在pom.xml引入相关的依赖,和在配置文件中做些简单的配置就可以使用相应模块了。对于servlet stack applications, the spring-boot-starter-web includes Tomcat by including spring-boot-starter-tomcat, but you can use spring-boot-starter-jetty or spring-boot-starter-undertow instead,更多参看web-server。springboot默认引入了spring-boot-starter-tomcat包,使TomcatServletWebServerFactory可以自动装配,在获取getBeanFactory().getBeanNamesForType(ServletWebServerFactory.class)时,默认得获取的beanName就是 tomcatServletWebServerFactory, 从而调用TomcatServletWebServerFactory的getWebServer方法创建TomcatWebServer, 启动tomcat。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<!-- Exclude the Tomcat dependency -->
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</exclusion>
	</exclusions>
</dependency>

SpringBoot应用启动器基本的一共有44种,如下所示:

1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。

2)spring-boot-starter-actuator 帮助监控和管理应用。

3)spring-boot-starter-amqp 通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protocol)。

4)spring-boot-starter-aop 支持面向方面的编程即AOP,包括spring-aop和AspectJ。

5)spring-boot-starter-artemis 通过Apache Artemis支持JMS的API(Java Message Service API)。

6)spring-boot-starter-batch 支持Spring Batch,包括HSQLDB数据库。

7)spring-boot-starter-cache 支持Spring的Cache抽象。

8)spring-boot-starter-cloud-connectors 支持Spring Cloud Connectors,简化了在像Cloud Foundry或Heroku这样的云平台上连接服务。

9)spring-boot-starter-data-elasticsearch 支持ElasticSearch搜索和分析引擎,包括spring-data-elasticsearch。

10)spring-boot-starter-data-gemfire 支持GemFire分布式数据存储,包括spring-data-gemfire。

11)spring-boot-starter-data-jpa 支持JPA(Java Persistence API),包括spring-data-jpa、spring-orm、hibernate。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值