当前位置: 首页 > news >正文

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。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Matlab2021b通过CNN、CNN-LSTM模型实现对声音信号的二分类与四分类
  • HTML静态网页成品作业(HTML+CSS)——安徽宣笔设计制作(5个页面)
  • 使用 ESP32 和 TFT 屏幕显示实时天气信息 —— 基于 OpenWeatherMap API
  • 微服务架构设计中的常见的10种设计模式
  • vuex的原理和使用方法
  • UniFab 是一款由人工智慧驅動的視訊增強器+ crack
  • string字符串和json对象相互转换问题
  • 认知杂谈16
  • CompletableFuture 的使用和实际业务中的应用
  • 大话回合手游【精品西游之鸿鹄西游精修商业开服端】最新整理WIN系特色服务端+安卓苹果双端+GM后台
  • 一个手机到手机之间通话经过了哪些设备
  • SQL - 基础大汇总
  • CSS知识点详解:display+float
  • AWS CDK测试初探:掌握Assertion测试模式
  • 如何配置服务单元文件(nginx.service)
  • 30秒的PHP代码片段(1)数组 - Array
  • export和import的用法总结
  • express + mock 让前后台并行开发
  • Java读取Properties文件的六种方法
  • js 实现textarea输入字数提示
  • Kibana配置logstash,报表一体化
  • Markdown 语法简单说明
  • mongodb--安装和初步使用教程
  • React的组件模式
  • redis学习笔记(三):列表、集合、有序集合
  • springMvc学习笔记(2)
  • 多线程事务回滚
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 浏览器缓存机制分析
  • 译自由幺半群
  • 正则表达式小结
  • Spring Batch JSON 支持
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 数论-逆元
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C++哈希表01)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (function(){})()的分步解析
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (四)鸿鹄云架构一服务注册中心
  • (算法)前K大的和
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net wcf memory gates checking failed
  • .NET 解决重复提交问题
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @Transactional事务注解内含乾坤?
  • @WebService和@WebMethod注解的用法
  • [16/N]论得趣
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android] Binder 里的 Service 和 Interface 分别是什么
  • [BT]小迪安全2023学习笔记(第29天:Web攻防-SQL注入)
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素