1.Fastjson 反序列化任意代码执行漏洞
Fastjson是一个Java语言编写的高性能功能完善的JSON库。由于其简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。Fastjson Develop Team 于2022年5月23日披露 fastjson 1.2.80及以下版本存在新的反序列化漏洞风险,该利用在特定条件下可绕过默认autoType关闭限制,导致任意代码执行,攻击远程服务器,风险影响较大,建议fastjson用户尽快采取安全措施保障系统安全。
1. 升级到fastjson最新版本1.2.83(https://github.com/alibaba/fastjson/releases/tag/1.2.83)
注意:该版本涉及autotype行为变更,在某些场景会出现不兼容的情况,如遇到问题可以到 https://github.com/alibaba/fastjson/issues 寻求帮助。
2. 通过safeMode加固fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可杜绝反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)
2.1开启方法
参考 https://github.com/alibaba/fastjson/wiki/fastjson_safemode
2.2 若使用的是1.2.83之后的版本,是否需要开启safeMode?
1.2.83版本修复了此次发现的漏洞。开启safeMode则是完全关闭autoType功能,可避免类似问题再次发生,但这可能会导致兼容问题,请充分评估对业务的影响后再开启。
3. 升级到fastjson v2
fastjson v2地址:https://github.com/alibaba/fastjson2/releasesPs. fastjson已经开源2.0版本,在2.0版本中,不再为了兼容提供白名单,提升了安全性。fastjson v2代码已经重写,性能有了很大提升,不完全兼容1.x,升级需要做认真的兼容测试。升级遇到问题,可以在https://github.com/alibaba/fastjson2/issues 寻求帮助。检测到服务器存在漏洞风险,建议立即对相关主机进行快照备份,避免遭受损失
2.Spring框架远程代码执行漏洞
2022年3月31日,Spring官方发布安全公告,披露CVE-2022-22965 Spring Framework 远程代码执行漏洞。由于Spring框架存在处理流程缺陷,攻击者可在远程条件下,实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。扫描方式:检测JDK版本>=9,且spring-beans*.jar版本在受影响范围内
升级至官方修复版本
Spring Framework >= 5.3.18
Spring Framework >= 5.2.20
3.Spring Cloud Gateway 远程代码执行漏洞
Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。当启用和暴露 Gateway Actuator 端点时,使用 Spring Cloud Gateway 的应用程序可受到代码注入攻击。 远程攻击者可以发出恶意制作的请求,从而远程执行任意代码。
官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本:
Spring Cloud Gateway >= 3.1.1
Spring Cloud Gateway >= 3.0.7
临时缓解措施:
1.如果不需要Gateway actuator endpoint,可通过 management.endpoint.gateway.enabled: false 禁用它。
2.如果需要actuator,则应使用 Spring Security 对其进行防护,可参考:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.security。
4.Apache log4j2 远程代码执行漏洞
Apache Log4j2 发布安全通告,2.17.1之前的版本容易受到远程代码执行攻击,当攻击者有权限修改日志配置的情况下,可远程执行代码。
一个Apache Log4j2高危漏洞细节已被公开,Log4j-2<2.15.0的版本中存在JNDI注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。