觀點 · 資訊分享

Nginx UI 的備份還原 API 剛啟動 10 分鐘內免登入:CVE-2026-42238 可遠端執行指令,請升到 2.3.8

管理 Nginx 的網頁介面 nginx-ui 被揭露 CVE-2026-42238:在全新安裝、程序啟動後前 10 分鐘內,備份還原 API 不需要登入,攻擊者可蓋掉設定檔並進一步執行指令。官方在 2.3.8 修補。

發布
2026-05-05
篇幅
約 3 分鐘 · 1,364 字
結構
8 節 + 3 題常見問題
標籤
#nginx-ui#CVE-2026-42238#遠端程式碼執行#Nginx#自架服務
Nginx UI 的備份還原 API 剛啟動 10 分鐘內免登入:CVE-2026-42238 可遠端執行指令,請升到 2.3.8

一句話看懂:自架的 nginx-ui 如果版本早於 2.3.8,在剛安裝、剛啟動的前 10 分鐘內,備份還原功能不用登入,可能被拿來蓋掉設定並執行指令,請盡快升級。

nginx-ui 備份還原 API 免驗證資訊圖卡:剛啟動 10 分鐘內,免登入就能蓋掉設定並執行指令

先用白話講:nginx-ui 是什麼?

Nginx 是很多網站前面的「大門管理員」。nginx-ui 則是替這位管理員做的「遙控面板」,用瀏覽器就能改設定。

問題是:面板剛安裝完、還沒設好管理員帳號的那段時間,有一個功能忘了鎖門。

發生什麼事

CVE-2026-42238 在 5 月 4 日(UTC)公開。依公告的描述:

  • nginx-ui 的備份還原端點 POST /api/restore,在全新安裝、程序啟動後的前 10 分鐘內完全不需要登入
  • 攻擊者可以上傳特製的備份檔,蓋掉應用程式的設定檔與資料庫
  • 設定檔裡有可以填入指令的欄位,重啟後被載入,就可能以 nginx-ui 的執行身分執行指令;公告說在 Docker 部署中通常是 root
  • 這個 10 分鐘的時間窗,在每次程序重啟時都會重新開始
  • 影響 2.3.8 之前的版本,官方說 2.3.8 已修補;GitHub 公告列的 CVSS 為 9.8(嚴重)

誰會受影響?

情況 風險
剛部署、還沒完成初始設定,且連接埠對外開放 高
容器常被重啟或重新排程,且設定尚未完成 每次重啟都重新開啟時間窗
已完成初始設定的實例 公告說還原端點會要求登入,風險較低,但仍建議升級

該怎麼做

  1. 把 nginx-ui 升到 2.3.8 以上
  2. 部署後第一件事就是完成初始設定,不要讓它停在「剛安裝」的狀態
  3. 管理介面不要直接放到公網,用內網、VPN 或有存取限制的反向代理保護
  4. 如果你的實例曾在公網上跑過「未完成初始設定」的狀態,檢查設定檔與資料庫有沒有被改過(以下是通用的建議,不是官方步驟)

給開發者的技術細節

  • 公告指出,該端點用「是否已安裝或超過啟動後 10 分鐘」來決定要不要驗證,這個以時間判斷的設計,在容器常重啟的環境下形同沒有保護
  • 這類問題的共通教訓:「初始設定期間開放」的功能,應該靠一次性的設定憑證,而不是時間窗;這是我的整理,不是公告原文
  • CVE.org 的記錄把弱點類型歸為 CWE-94(程式碼注入)

我的看法

自架服務的人最常犯的錯,是「先跑起來再說,設定晚點補」。這次的漏洞正好打在這個習慣上:晚點補的那段空窗,就是對外敞開的門。

我自己的做法是:任何管理介面一上線就先把帳號設好,並且預設只開在內網。對幫中小企業架站的接案者來說,也建議把「完成初始設定」寫進部署檢查清單,不要交給客戶後才發現還沒設。

名詞小辭典

  • nginx-ui:用網頁管理 Nginx 設定的開源工具。
  • CVE:公開漏洞的編號,方便大家用同一個名字討論同一個問題。
  • CVSS:嚴重度評分,滿分 10,9 以上屬於嚴重。
  • 遠端程式碼執行(RCE):攻擊者不用在場,就能讓伺服器執行他指定的指令。

資料來源

常見問題

nginx-ui 是什麼?
一套開源的網頁介面,讓你用瀏覽器就能管理 Nginx 的設定、憑證與狀態,很多人用 Docker 自架。
我已經設好管理員帳號,還會中招嗎?
依 GitHub 公告的描述,問題出在「全新安裝、尚未完成初始設定」且程序剛啟動的前 10 分鐘,這段時間還原 API 不用登入。已完成初始設定的實例,還原端點會要求登入,但仍建議升級。
該怎麼因應?
把 nginx-ui 升到 2.3.8 以上;不要把管理介面的連接埠(預設 9000)直接開到公網,改放在內網、VPN 或有存取控制的反向代理後面。
LINE