紀錄工作經驗、相關知識,解決技術相關問題。

時事新聞, 資訊相關

Plex2Shell 漏洞怎麼查、怎麼修:Plex Media Server 1.43.2 以前版本檢查與處理步驟

Plex2Shell 漏洞怎麼查、怎麼修:Plex Media Server 1.43.2 以前版本檢查與處理步驟 特色圖片

如果你的 Plex Media Server 是 1.43.2 或更早的版本,而且曾經能從外網連進來,這件事不能只靠更新處理。Plex 官方已確認 Plex2Shell 這組漏洞鏈正在被廣泛利用,受害主機被拿去挖礦或當代理節點;更新到 1.43.3.10861 只是把入口封上,攻擊者如果已經進來,留下的東西不會跟著消失。

先跳到你要的部分:

受影響版本與四個 CVE

Plex 在 9 月 1 日的公告中釋出 1.43.3,10 月 19 日再補上 CVE 細節與在野利用的說明。結論很單純:Plex Media Server 1.43.2 及更早版本受影響,1.43.3.10861 或更新不受影響。QNAP 的公告也提到,QTS 與 QuTS hero 作業系統本身不在受影響範圍,漏洞出在 Plex Media Server 這個應用程式。

四個 CVE 在 CISA 的 KEV(已知遭利用漏洞)目錄裡都有收錄,加入日期同為 2026-10-20,類型如下:

CVEKEV 上的類型修補期限(聯邦機構)
CVE-2026-96652Server-Side Request Forgery(SSRF)2026-11-03
CVE-2026-96654URI scheme 處理不當(CWE-84)2026-10-23
CVE-2026-96655Server-Side Request Forgery(SSRF)2026-11-03
CVE-2026-96656外部可控的檔案名稱或路徑(CWE-73)2026-10-23

有兩點要補充。第一,坊間文章常寫成「CISA 要求 3 日內修補」,實際上只有 96654 與 96656 的期限是三天後,另外兩個給了 14 天。第二,Plex 論壇公告對各 CVE 的白話描述(例如把 96655 寫成管理員 token 外洩),和 CVE 紀錄、KEV 的分類用語並不完全一致,上表以 CVE 紀錄與 KEV 為準。

漏洞鏈怎麼運作

單獨看,這幾個漏洞的危險程度都不算最高,麻煩在於它們可以接力。研究者公開的技術文章把過程拆成五段,可以用一棟辦公大樓來想:

  1. 假訪客證也放行。 伺服器的某個端點只檢查請求有沒有帶 X-Plex-Token 這個欄位,沒檢查內容是不是真的,所以隨便填一串字就過關。攻擊者藉此讓伺服器對自己發出請求,等於櫃台肯幫陌生人撥內線電話。
  2. 內線電話只認內部號碼。 那通電話是從伺服器本機(127.0.0.1)打出來的,而外掛管理功能預設信任本機來源、不要求 token,於是攻擊者能呼叫原本碰不到的內部功能。
  3. 借內部功能拿到管理員鑰匙。 內部的一個資料抓取功能會替請求附上伺服器主人的 token,攻擊者把網址設計成能騙過它的判斷,token 就送到自己的主機。
  4. 用管理員身分改轉檔設定,寫入檔案。 拿到 token 後,攻擊者改動轉檔參數,讓轉檔程序把一段特製內容寫到指定路徑,那段內容其實是一個共用函式庫檔案(.so)。
  5. 開機時當成正規零件載入。 Plex 啟動轉檔時會載入編解碼器資料夾裡所有 .so 檔,沒有再驗證簽章,攻擊者的程式碼就用 Plex 的帳號身分跑起來。

整條鏈的前提是伺服器的 Plex 連接埠對攻擊者可達。這也是為什麼後面的判斷與降低暴露,全都圍繞在「有沒有對外開放」。

時間線方面,研究者在 7 月 27 日向 Plex 通報;CVE 在 9 月 23 日編號;10 月 16 日技術細節與概念驗證(PoC)公開,Plex 與 QNAP 都把這一天視為攻擊升溫的起點;10 月 20 日 CISA 把四個漏洞列入 KEV。

判斷自己有沒有中

分兩步:先看版本,再看是否曾經暴露。

第一步,確認版本。 在 Plex Web 的 Settings → General 可以看到伺服器版本,低於 1.43.3.10861 就是有風險。QNAP 使用者也可以到 App Center → My Apps 查看,已修補的版本顯示為 1.43.3。

第二步,確認有沒有暴露過。 只要在 1.43.2 或更早版本期間符合下列任一項,QNAP 與 Plex 的建議都是先假設主機可能已被入侵:

  • Plex 的 Settings → Remote Access 曾經開著。
  • 路由器有轉送 32400 連接埠到 NAS 或主機。
  • 路由器開著 UPnP,同時 Plex 開了 Remote Access,Plex 會自己請路由器開埠。
  • 透過 myQNAPcloud 的自動路由器設定,或其他方式讓 Plex 可從外網連入(這是 QNAP 專屬的情況)。
  • 你是在 10 月 16 日 PoC 公開之後才更新的,QNAP 也把這種情況列為要視同可能受害。

如果一直只在家用網路內使用、從沒對外開放,攻擊鏈缺少起點,更新後風險就很低。

第三步,找入侵跡象。 Plex 與 QNAP 公告列出的特徵包括:

  • Plex 啟動出不認識的程序,名稱像 myawesomeproxy、mylovelyminer、x12345。
  • Codecs 資料夾裡有陌生的 .so 或 .dll 檔。
  • 有對 proxystream.st 的對外連線。
  • 沒人播放影片,CPU 卻持續高使用率(QNAP 可用 Resource Monitor 看)。
  • QNAP 的 Malware Remover 偵測到相關項目,例如偵測編號 MR2104。

找到任何一項,不要只刪掉那支程式。QNAP 的說明特別提醒,可能還有其他元件或常駐機制,要走完整的乾淨重裝與憑證重設。

處理步驟

1. 先更新

所有 Plex 使用者的第一步都一樣:升級到 1.43.3.10861 以上。Plex 的公告有列 Windows、macOS、Linux、Docker、NAS 與 NVIDIA Shield 的更新方式,照自己的平台操作即可。

QNAP 的做法是 App Center → My Apps → Plex Media Server → Update。如果沒看到更新,先重新整理 App Center,並確認 NAS 能連上網路。

如果你的 Plex 跑在 Docker 容器裡,這時更新映像檔並重建容器是一般做法;容器的設定與資料目錄怎麼持久化,可以參考這篇 Synology Container Manager 部署與資料持久化,之後第 2 步要「換掉舊資料目錄」時會用到。

2. 若曾暴露或無法排除:乾淨重裝

更新不會清除攻擊者已寫入的檔案。Plex 的建議是從乾淨的安裝重建,不要沿用舊的資料目錄;至少要清空 Codecs 資料夾,並檢查 Preferences.xml 裡有沒有你沒設定過的轉檔選項。

QNAP 的流程如下,這幾步是 QNAP 專屬:

  1. 先備份 Plex Logs。 路徑在 PlexData 共用資料夾的 Plex Media Server 底下,複製到別處。之後要請 QNAP 協助判斷是否被入侵,會需要它。
  2. 到 App Center → My Apps,移除 Plex Media Server。
  3. 用 File Station 看 PlexData 裡是否還留著 Plex Media Server 資料夾。有的話不要沿用;至少清掉 Codecs 的全部內容,並檢查 Preferences.xml。
  4. 重新安裝 1.43.3 或更新版本。
  5. 不要把舊的 Codecs 內容還原回去,Plex 會自己下載需要的元件。

非 QNAP 平台,官方來源沒有提供逐平台的重建步驟,原則同上:保留日誌做證據,用新版本在乾淨的資料目錄上重建,不要把舊資料夾整個搬回去。

3. 重設憑證

Plex 與 QNAP 都強調,這一步和重裝一樣重要,因為攻擊鏈的關鍵就是偷走管理員 token。

  • Plex 帳號: 先在帳號設定裡把所有裝置登出,再改密碼。只改密碼不夠,因為 token 可能已經外洩。
  • NAS 與其他服務(QNAP 的建議): 把 Plex 能存取到的共用資料夾和儲存在 NAS 上的憑證,都當成可能外洩。更改 NAS 管理員與使用者密碼、啟用兩步驟驗證,並更換備份工作、雲端連線等其他服務用的密碼或存取金鑰。

Plex 的公告也提醒,Plex 服務帳號碰得到的東西(掛載的共用資料夾、存放的憑證)都該視為可能暴露,這個原則不限於 QNAP。

4. 需要 QNAP 協助時

保留好 Plex Logs 之後,到 QNAP 技術支援網站(service.qnap.com)開案,並附上 Plex 版本、是否曾對外連線,以及你找到的入侵跡象。

降低暴露:關掉 Remote Access,遠端改走 VPN

修完之後,要避免下一個漏洞又讓同一個入口被打。

  1. 關閉 Plex Remote Access。 位置在 Settings → Remote Access。如果只在家裡看,這個功能根本不需要開。
  2. 移除路由器上的 32400 連接埠轉送。 轉送規則怎麼檢查,可以看 路由器連接埠轉送與 NAT Loopback 設定。同時關閉 UPnP,並移除 myQNAPcloud 為 Plex 建立的自動路由器設定(後者是 QNAP 專屬)。
  3. 要在外面使用,改走 VPN。 先用 VPN 回到家裡網路,再打開 Plex,Plex 本身就不必暴露在網際網路上。QNAP 的做法是用 NAS 上的 QVPN Service;自己架設的話,可以先讀 WireGuard 與 OpenVPN 路由器設定比較 挑方案。
  4. 讓系統保持更新。 QNAP 建議持續更新 QTS 或 QuTS hero 與所有已安裝的應用程式,並啟用 Malware Remover 排程掃描與 QuFirewall。如果裝置已超過軟體支援期限、裝不了最新系統,要重新評估整體安全狀況。

QNAP 也說明,後續 Plex 還會有其他安全修正,經驗證後會陸續出現在 App Center;看到就裝,但不需要為了等它而延後,因為 1.43.3 已經修掉 Plex2Shell。

重點整理

  • 版本低於 1.43.3.10861 就要升級;升級後也只是封住入口。
  • 判斷有沒有中的關鍵不是版本,而是 Plex 是否曾經從外網可達(Remote Access、32400 轉送、UPnP)。
  • 曾暴露或無法排除,就乾淨重裝、登出所有裝置並重設 Plex 與 NAS 憑證,先把 Plex Logs 留下來。
  • 以後遠端使用走 VPN,不要讓 Plex 直接面對網際網路。

參考資料與延伸閱讀

發佈留言