緣起
最近(2023.03.13)客戶現場要求自檢有無使用Nacos,原因是Nacos存在認證繞過高危漏洞,其漏洞代碼NVDB-CNVDB-2023674205
,本文就簡單說一下這個事兒,以及如何解決這個問題。
以下內容中,Nacos服務端A簡稱A,Nacos服務端B簡稱B。
問題現象
可以使用已知賬號密碼的A的登錄響應體,替換未知密碼的B登錄響應體來繞過認證,進入B後臺。
影響範圍:<=2.2.0
問題原因
Nacos使用JWT生成密鑰,同樣的JWT生成key會導致A的token可以給B使用。
解決辦法
方法一、修改生成token的key
Nacos提供了修改默認JWT token生成key的配置項:
#啓用認證
nacos.core.auth.enabled=true
#生成token的密鑰
nacos.core.auth.plugin.nacos.token.secret.key=BASE64編碼
推薦自定義密鑰時,推薦將配置項設置爲Base64編碼的字符串,且原始密鑰長度不得低於32字符。
方法二、升級到2.2.0.1及以後版本
目前Nacos官方在2023.03.02發佈了2.2.0.1,下載地址:https://github.com/alibaba/nacos/releases/tag/2.2.0.1
以後更近版本參見:https://github.com/alibaba/nacos/releases
方法三、容器環境處理方式
對於容器環境則將 NACOS_AUTH_ENABLE=true
與 NACOS_AUTH_TOKEN=BASE64編碼
作爲環境變量傳入即可。
參考引用: