Apache Dubbo包含了一个可远程利用的漏洞。Hessian2协议反序列化漏洞,攻击者以篡改协议的方式绕过反序列化黑/白名单。
漏洞描述
在Apache Dubbo的默认通信方式中,Dubbo会在传输报文中使用serialization id
来传递数据体使用的序列化协议方式。在Dubbo 2.7.8或2.6.9以前的版本中,攻击者可以构造自己需要的serialization id
,并发送给服务端,而服务端会无条件使用该serialization id
进行反序列化。这意味着可能存在Kryo、 FST或者 native-java等安全性较差的序列化方式,攻击者可以利用此漏洞发起攻击。
例如,native-hessian与hessian2类似,但不支持黑/白名单,因此即使开发人员为hessian2设置了黑/白名单,攻击者仍然可以将协议更改为native-hessian并规避它。
漏洞评级
中
影响范围
- 使用Dubbo 2.5.x版本的所有用户。
- 使用Dubbo 2.6.10之前版本的所有用户。
- 使用Dubbo 2.7.10之前版本的所有用户。
安全建议
请根据您使用的Dubbo版本,升级到指定版本,并开启强校验。
- 升级Dubbo版本。
- 使用Dubbo 2.5.x的用户,请升级到Dubbo 2.6.10.1或Dubbo 2.7.12。
- 使用Dubbo 2.6.x的用户,请升级到Dubbo 2.6.10.1或Dubbo 2.7.12。
- 使用Dubbo 2.7.x的用户,请升级到Dubbo 2.7.12。
- 配置环境变量
serialization.security.check=true
,开启强校验。说明 如果集群规模较大,未能升级所有节点,开启强校验后,和Dubbo 2.7.8及之前版本多序列化协议互通时可能存在兼容问题,需要评估是否开启强校验。