漏洞风险提示 | Apache Struts 2 远程代码执行漏洞(S2-059 / CVE-2019-0230)

  • A+
所属分类:安全文章
        长亭漏洞风险提示       


     Apache Struts 2 远程代码执行漏洞

(S2-059 / CVE-2019-0230)


Apache Struts 2 是一个基于 MVC 设计模式的 Web 应用框架。其官方在 8 月 13 号发出安全通告,声明对其存在的一个远程代码执行漏洞进行修复:

https://cwiki.apache.org/confluence/display/WW/S2-059


该漏洞编号为 S2-059,CVE 编号为 CVE-2019-0230,由来自 Apple 安全研究团队的 Matthias Kaiser 报告。


漏洞描述


Apache Struts 2 会对某些标签属性(比如 id)的属性值进行二次表达式解析,因此在某些场景下将可能导致远程代码执行。


此问题仅适用于当在 Struts 标签属性内强制进行 OGNL 表达式解析时的情况,比如如下写法:


<s:url var="url" namespace="/employee" action="list"/><s:a 

id="%{skillName}" href="%{url}">List available Employees</s:a>

如果攻击者能够在请求中控制 skillName 属性值且应用未对其进行检查校验,则攻击者可以直接传入一个 OGNL 表达式,那么最终当标签渲染的时候,skillName 的表达式就会因为二次解析而被执行。


影响范围


  • Struts 2.0.0 - Struts 2.5.20


解决方案


根据官方公告,最好的解决方法是对每一个标签属性的传入值进行安全校验,并且不应该在除了 value 以外的其他属性值中使用 %{...} 或 ${...} 进行表达式解析。

也可以将 Struts 升级到 2.5.22 版本对此漏洞进行缓解。

产品支持


雷池内置语法引擎默认支持检测 OGNL 表达式注入攻击,请确保雷池相关配置项开启。


参考资料



  • https://cwiki.apache.org/confluence/display/WW/S2-059



漏洞风险提示 | Apache Struts 2 远程代码执行漏洞(S2-059 / CVE-2019-0230)


漏洞风险提示 | Apache Struts 2 远程代码执行漏洞(S2-059 / CVE-2019-0230)




发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: