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及之前版本多序列化協議互連時可能存在相容問題,需要評估是否開啟強校正。