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

spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复

spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复

漏洞描述

CVE-2024-38816: Path traversal vulnerability in functional web frameworks

通过功能性 Web 框架 WebMvc.fn 或 WebFlux.fn 提供静态资源的应用程序容易受到路径遍历攻击。攻击者可以编写恶意 HTTP 请求并获取文件系统上任何可由 Spring 应用程序正在运行的进程访问的文件。

具体来说,当以下两个条件都成立时,应用程序就容易受到攻击:

  • Web 应用程序用于RouterFunctions提供静态资源
  • 资源处理明确配置了FileSystemResource位置

但是,当以下任何一项满足时,恶意请求都会被阻止和拒绝:

  • Spring Security HTTP 防火墙正在使用中
  • 应用程序在 Tomcat 或 Jetty 上运行

受影响的 Spring 产品和版本

Spring 框架

  • 5.3.0 - 5.3.39
  • 6.0.0 - 6.0.23
  • 6.1.0 - 6.1.12
  • 较旧的、不受支持的版本也受到影响

分析:

通常我们会把sprintboot项目打包war部署tomcat,

或者直接本地springboot 运行(内置tomcat)

上述两种方式都阻止漏洞,因为tomcat会拦截,返回错误如下:

<!doctype html>
<html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family: Tahoma, Arial, sans-serif;}h1,h2,h3,b {color: white;background-color: #525D76;}h1 {font-size: 22px;}h2 {font-size: 16px;}h3 {font-size: 14px;}p {font-size: 12px;}a {color: black;}.line {height: 1px;background-color: #525D76;border: none;}</style>
</head><body><h1>HTTP Status 400 – Bad Request</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Message</b> Invalid URI</p><p><b>Description</b> The server cannot or will not process the request due to something that is perceived to be aclient error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).</p><hr class="line" /><h3>Apache Tomcat/9.0.46</h3>
</body></html>

综上,内置和外置的tomcat都会校验地址,通过后才会进入spring webmvc解析才可能触发漏洞。

因此要重现漏洞需用不知名web服务器。 webflux默认采用netty也无需处理。

漏洞原因:spring地址解析URL地址代码考虑欠缺,需要依赖前置的web服务器(比如tomcat)拦截

修复参考:

https://xz.aliyun.com/t/15779?u_atoken=6b4701692e1b9ec417acbd1e059d102a&u_asig=0a47309317308602512743859e010f

http://www.lryc.cn/news/478408.html

相关文章:

  • ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)
  • Node.js——fs模块-文件重命名和移动
  • vue2.0版本引入Element-ui问题解决
  • qt QTableView详解
  • 将Notepad++添加到右键菜单【一招实现】
  • Nature Methods | 基于流形约束的RNA速度推断精准解析细胞周期动态调节规律
  • 在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
  • ReactPress系列—Next.js 的动态路由使用介绍
  • DevOps业务价值流:需求设计最佳实践
  • A15基于Spring Boot的宠物爱心组织管理系统的设计与实现
  • RC高通滤波器Bode图分析(传递函数零极点)
  • SpeechT5 模型
  • 网站用户行为分析:方法、工具与实践
  • 医疗医药企业新闻稿怎么写?健康行业品牌宣传背书的报纸期刊杂志媒体有哪些
  • 2024-11-06 问AI: [AI面试题] 人工智能如何用于欺诈检测和网络安全?
  • 个人3DCoat设置分享
  • Spark 程序开发与提交:本地与集群模式全解析
  • Linux编程:DMA增加UDP 数据传输吞吐量并降低延迟
  • 鸿蒙开启无线调试
  • C. DS循环链表—约瑟夫环 (Ver. I - B)
  • 【刷题】优选算法
  • Python 在PDF中绘制形状(线条、矩形、椭圆形等)
  • 《今日制造与升级》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • loading为什么不更新
  • Rust 力扣 - 1652. 拆炸弹
  • 使用Golang实现开发中常用的【并发设计模式】
  • 基于Zynq FPGA对雷龙SD NAND的性能测试评估
  • 4.WebSocket 配置与Nginx 的完美结合
  • Docker:镜像构建 DockerFile
  • 浮动路由:实现出口线路的负载均衡冗余备份。