Home/hcl / hcl domino / **Domino 14.5 XPages 重大漏洞:SessionScope 變數遺失災情分析與升級警示**

XPages 會話範圍變數遺失問題:HCL Domino 14.5 回歸錯誤分析

HCL Domino 14.5 於 2025 年 6 月正式發布,帶來多項安全與開發工具改進,但同時也在 XPages 平台上引入了一個嚴重回歸缺陷:SessionScope 變數在 HTTP 請求之間會被意外清空。此問題在 2025 年 12 月底的 Domino 社群論壇中被多位開發者報告,並得到 HCL 官方的正式提醒:「如果您的環境依賴 XPages,請暫緩升級至 14.5 以避免生產環境中斷」

背景:XPages 與 SessionScope 的角色

XPages 是 Domino 的原生 Web 開發框架,允許使用者以 Java/JavaScript 方式快速構建動態頁面。SessionScope 變數是 XPages 中最常用的狀態管理機制之一,用於在同一用戶會話內保存資料,例如表單填寫進度、授權標記或客製化設定。正常情況下,這些變數會在整個瀏覽器會話期間持續存在,除非顯式呼叫 sessionScope.clear() 或使用者關閉瀏覽器。

問題現象

📂 收合(點我收起)

1. 先前使用 14.4 時,SessionScope 變數在多頁面導航、POST/GET 之間保持不變。
2. 升級至 14.5 後,發現某些變數在請求結束時被自動清空。
3. 影響範圍:所有使用 SessionScope 儲存狀態的 XPages,特別是需要跨頁面傳遞驗證 token 或用戶偏好的應用。
4. 典型錯誤訊息:XPages 無法找到已存放於 SessionScope 的變數,會觸發「NullPointerException」或「Undefined variable」錯誤。

此缺陷在多數測試環境中能以 1–2 次請求重現,且不受瀏覽器或作業系統影響,顯示其根源在於 Domino 伺服器的會話管理層面。

根因分析

根據 HCL 官方技術說明,14.5 版在 session 管理模組中引入了新功能:「多租戶 session isolation」。此變更本意是為了提升安全性,將不同用戶的 session 存取分離,防止跨租戶資料洩露。然而,實作中存在邏輯錯誤,導致在某些條件下(例如使用者請求跨多個 XPages,且同時存在外掛或自訂 Java 程式碼)會觸發 session 變數的無條件重置。

具體而言,com.hcl.domino.web.SessionManager 在 14.5 中加入了 invalidateOnRequestEnd() 方法,預期只在 session 結束時被呼叫。然而,因為在 XPages 頁面渲染流程中 SessionManager 被多次實例化,導致 invalidateOnRequestEnd() 被誤觸,從而清空 sessionScope

重現步驟

  1. 建立一個簡易 XPage,於 beforePageLoad 事件中設定 sessionScope.test = "Hello"
  2. 在同一 XPage 內放一個連結至另一個 XPage。
  3. 瀏覽第一個 XPage,確認 sessionScope.test 已被寫入。
  4. 點擊連結,返回第二個 XPage,發現 sessionScope.testnull

以上流程在 14.5 伺服器上重複 3–5 次即可穩定觸發缺陷。

影響評估

  • 業務連續性風險:若應用依賴 SessionScope 傳遞驗證 token,將導致使用者被意外登出,影響用戶體驗與營運。
  • 安全性風險:不正確的 session 處理可能被惡意利用,造成會話固定或跨站點請求偽造(CSRF)攻擊。
  • 維運成本:需要額外的單元測試與手動回退機制,增加測試與支援工作量。

即時對策

  1. **暫停升級**:如果您的環境仍在 14.4,請在收到 HCL 官方警示前暫停升級。若已升級,建議回退至 14.4,直到 HCL 發佈正式修補。
  2. **使用 GlobalScope 或資料庫**:將需要持久化的資料改為存放於 globalScope 或外部資料表,減少對 SessionScope 的依賴。
  3. **自訂 SessionScope 失效處理**:在每個 XPage 的 beforePageLoad 事件中檢查關鍵變數是否存在,若不存在即重新初始化,確保流程不被中斷。
  4. **監控與日誌**:啟用 SessionManager 的 debug 日誌,捕捉 invalidateOnRequestEnd 的呼叫,快速定位問題。
  5. **申請熱修正**:聯繫 HCL 支援,確認是否有可用的 14.5.1 或 14.5.x 的熱修正包,並在測試環境中驗證。

長期解決方案

HCL 已在 2025 年 12 月底的官方技術筆記中承諾將於 14.5.2 版修正此回歸問題。為了確保未來升級順利,建議您:

  • **保持產品更新**:定期檢查 HCL 官方公告,下載並測試最新的補丁。
  • **建立升級策略**:在升級前先在測試環境重現所有關鍵 XPages 功能,特別是使用 SessionScope 的場景。
  • **部署自動化測試**:利用 Selenium 或 Hammerhead 等工具,自動驗證 SessionScope 的持續性。
  • **加強安全審計**:將 XPages 的會話管理納入安全掃描範圍,確保無其他潛在缺陷。

結論

HCL Domino 14.5 版的 SessionScope 變數遺失問題,雖屬於回歸缺陷,但其對業務連續性與安全性的潛在衝擊不容忽視。開發者與系統管理員必須先行評估環境依賴性,暫緩升級並採取緩解措施,同時關注官方修正進度。透過嚴謹的測試流程與升級管控,可在確保安全與穩定的前提下,順利享受 14.5 版帶來的新功能與改進。

參考資料與原文來源


🧠本文由 DreamJ AI 技術新聞生成系統 自動撰寫並進行語意優化,僅供技術研究與教學使用。
請以原廠公告、CVE 官方資料與安全建議為最終依據。

**Domino 14.5 XPages 重大漏洞:SessionScope 變數遺失災情分析與升級警示**

🧠 本文章與所附圖片部分內容為 AI 生成或 AI 輔助產製。文中提及之商標、品牌名稱、產品圖片及相關標識, 其著作權與商標權均屬原權利人所有,本網站僅作為資訊呈現與示意使用

最新文章

推薦文章

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

分析完成 ✔