跳到主要内容

超危

Apache Struts Jakarta Multipart解析器远程代码执行漏洞(S2-045)(S2-046)

2017-03-07 00:00:00 公开 ,2025-10-22 00:46:03 更新

  • 关键漏洞
  • CISA KEV
  • 勒索软件漏洞
  • APT漏洞
  • 远程
  • 公开PoC
  • 无需认证
  • CWE Top 25 (2023)
  • 开源组件漏洞
  • 2024两高一弱互联网漏洞
  • CWE Top 25 (2024)
  • 2025两高一弱漏洞
CWEs:
CWE-20 (Improper Input Validation) CWE-755 (Improper Handling of Exceptional Conditions)
SSVC:
可利用状态:已被积极利用攻击自动化:是技术影响评估:全部 2025-02-07 05:06:33

风险信息

CVSS v2 向量
AV:N/AC:L/Au:N/C:C/I:C/A:C
CVSS v2 风险值
10
CVSS v3 向量
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS v3 风险值
10
CVSS v3.1 向量
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v3.1 风险值
9.8

详细信息

漏洞类型
输入验证错误
漏洞描述
Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,主要提供两个版本框架产品,Struts 1和Struts 2。Apache Struts 2是Apache Struts的下一代产品,是在Struts 1和WebWork的技术基础上进行了合并的全新Struts 2框架,其体系结构与Struts 1差别较大。S2-045:Apache Struts 2 2.3.32之前的2 2.3.x版本和2.5.10.1之前的2.5.x版本中的Jakarta Multipart解析器存在安全漏洞,在文件上载尝试期间具有错误的异常处理和错误消息生成,这使得远程攻击者能够通过特制的内容类型、内容处置或内容长度HTTP头执行任意命令,远程攻击者可借助带有#cmd=字符串的特制Content-Type HTTP头利用该漏洞执行任意命令。S2-046:在使用基于Jakarta插件的文件上传功能时,上传文件大小(由Content-LSength头指定)大于Struts2 允许的最大值(2GB),同时文件名内容构造恶意的OGNL内容。受影响版本将创建一个包含攻击者控制的异常文件名,使用OGNL值堆栈来定位错误消息,OGNL值堆栈将插入任何OGNL变量($ {}或%{})作为OGNL表达式,然后实现任意代码执行。对于已经修复S2-045漏洞的用户(升级Struts版本为Struts 2.3.32、Struts 2.5.10.1)不受此漏洞影响。
修复建议
S2-045、S2-046修复方法一致。更新至Apache Struts 2.3.32或2.5.10.1或更高版本,或参考如下链接配置缓解措施: https://cwiki.apache.org/confluence/display/WW/S2-045

参考链接