咨询服务热线

400-6446-808

创安实验室专栏
您的当前位置:首页 > 创安实验室专栏
创安攻防实验室关于Spring Framework远程代码执行漏洞风险提示
发布者:创信华通  发布时间:2022-04-02  浏览量:338次

图片

近期创安攻防实验室监测到Spring官方发布安全公告,披露了一个Spring框架可在JDK>=9版本下实现远程代码执行的漏洞(CVE-2022-22965)。此漏洞影响范围极广,建议客户尽快做好自查工作。

官方公告链接:
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement



漏洞描述




该漏洞是SpringFramework数据绑定的一个漏洞,如果后台方法中接受的参数为非基础类型,Spring会根据前端传入的请求正文中的参数的key值来查询与其名称所对应的getter和setter方法,攻击者利用这一特性修改了Tomcat的一个用于日志记录的类的属性,进而当Tomcat在进行写日志操作的时候,将攻击者传递的恶意代码写入指定目录的指定文件中。


影响范围




若满足如下两个条件则确定受到漏洞影响:
(1)使用JDK>=9
(2)Spring开发或衍生框架开发(存在spring-bean*.jar)
spring-framework < v5.3.18
spring-framework < v5.2.20.RELEASE


漏洞编号




CVE-2022-22965


漏洞等级




严重


漏洞复现




目前外界Exp/PoC已公开,创安实验室已验证该漏洞的可利用性:


图片


图片




图片


修复建议






Spring官方目前已发布安全版本,建议用户尽快更新至安全版本,下载链接如下

https://github.com/spring-projects/spring-framework


(一)WAF防护


WAF等网络防护设备上,根据实际部署业务的流量情况,实现对class.*, Class.*,*.class.*,*.Class.* 等字符串的规则过滤,并在部署过滤规则后,对业务运行情况进行测试,避免产生额外影响。


(二)临时修复措施


需同时按以下两个步骤进行漏洞的临时修复:


1、在应用中全局搜索@InitBinder注解,看看方法体内是否调用dataBinder.setDisallowedFields方法,如果发现此代码片段的引入,则在原来的黑名单中,添加{"class.*","Class.*","*.class.*","*.Class.*"}。(注:如果此代码片段使用较多,需要每个地方都追加)


2、在用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试,并重新发布项目。






本文由创信华通创安攻防实验室整理编辑。


本文仅限于个人学习和技术研究,由于传播、利用此文所提供的信息而造成刑事案件、非授权攻击等违法行为,均由使用者本人负责,本单位不为此承担任何责任。创安攻防实验室拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。


如有侵权,请联系后台。




图片
成都创信华通信息技术有限公司


成都创信华通信息技术有限公司自成立以来一直秉承“求真务实、创新卓越”的文化理念,坚持“开创、诚信、规范、专业”的经营宗旨,竭尽全力为网络安全和国家安全保驾护航。我司以“等保测评”、“密码测评、“软件测试”、“安全服务”为基础,以综合服务为延伸,形成“4+N”的业务布局,针对多个行业形成系统的、全面的解决方案和网络安全保障体系。服务领域包括党政、政法、医疗、能源、教育、金融、工业互联网以及关键信息基础设施等多个方面。期待与您的合作!

图片

图片