Nacos 爆重大 Bug!!不要升級,不要升級,不要升級

Java技术栈發表於2024-07-09

大家好,我是R哥。

最近我把我的《Spring Cloud Alibaba 微服務實戰課》適配了 Spring Cloud Alibaba 2023.0.1.0 官方最新版本適配:

  • Spring Cloud Alibaba => 2023.0.1.0
  • Spring Cloud => 2023.0.1
  • Spring Boot => 3.2.4

以下官方元件依賴需要升級:

  • Nacos 2.2.1 => 2.3.2
  • RocketMQ 4.9.4 => 5.1.4
  • Sentinel => 1.8.6(和上一版沒有變化)
  • Seata 1.7.0 => 2.0.0

在完成適配後進行功能測試時,我發現了一個 Nacos 的重大 bug!!!

大概的問題是這樣的:

使用 Nacos 配置加解密外掛後,在 Nacos 控制檯首次新增加密配置時,資料中能正常儲存加密後的配置內容:

但在 Nacos 控制檯二次編輯加密配置時,資料庫中配置內容就變成明文了。。。

此時,因為資料庫是明文,所以使用了該配置加解密的應用啟動時,就會丟擲 DecoderException 解密失敗異常:

org.apache.commons.codec.DecoderException: Odd number of characters.
	at org.apache.commons.codec.binary.Hex.decodeHex(Hex.java:97) ~[commons-codec-1.16.1.jar:1.16.1]
	at org.apache.commons.codec.binary.Hex.decodeHex(Hex.java:77) ~[commons-codec-1.16.1.jar:1.16.1]

也正是因為看到了這個異常日誌,我才排查到 Nacos 這個 bug。

不過好的一點是,此異常只是記錄錯誤日誌並返回原明文內容,並不會向上丟擲異常,所以,它雖然不會影響系統正常使用,但這個配置加解密功能就形同虛設了,對資料安全造成嚴重影響。


我本想在 Nacos Issues 中提出這個 bug 的,事前查了下,沒想到這個 bug 居然在 2023 年 9 月份就已經有人提出來了,Issue 地址如下:

https://github.com/alibaba/nacos/issues/11141

在 bug 提出 5 天后,有個 Nacos 專案的兄弟說他會解決這個問題,沒想到這個 bug 在過去將近 10 個月後還處於 Open 狀態,難以置信啊。。

難道已經修復了狀態沒更新?

雖然在最新的 Spring Cloud Alibaba 2023.0.1.0 對應的 Nacos 2.3.2 版本中依然存在,但我抱著一查到底的態度,去檢視了最新的 Nacos 2.4.0-BETA 版本,這個 bug 依然沒有在解決說明中。。

以下是最新 Nacos 2.4.0-BETA 的 BugFix 更新列表:

這 bug 可大可小,事關配置資料的安全性,所以問題嚴重性可大可小,是官方忘了這個 bug,還是這個 bug 真的遇到棘手問題了,有這麼難解決?

不管怎麼樣,雖然是開源專案,但解決問題的效率真的令人堪憂,畢竟這個問題都快接近一年了,這是置若罔聞啊,後續我也會繼續跟進這個 bug 的修復進度,在我的《Spring Cloud Alibaba 微服務實戰課》中我也會及時更新。

對配置加解密敏感的同學儘量不要升級到 Spring Cloud Alibaba 2023.0.1.0,如果是獨立使用 Nacos 的,Nacos 建議使用之前正常的 2.2.1 版本,超過這個版本的可能都會出現這個問題。

我在公眾號「Java技術棧」首發後,官方澄清了,問題已經在 Nacos 2.4.0-BETA 版本中修復,相關問題也已經 Close 掉了,等正式版本釋出後我再測試吧。

更多文章推薦:

1.Spring Boot 3.x 教程,太全了!

2.2,000+ 道 Java面試題及答案整理(2024最新版)

3.免費獲取 IDEA 啟用碼的 7 種方式(2024最新版)

覺得不錯,別忘了隨手點贊+轉發哦!

相關文章