// 威脅簡報

Xorbits Xoscar actor-pool 不安全反序列化:不需登入即可遠端執行程式碼

CVSS
9.3 CRITICAL
CISA KEV
未列入
弱點類型
CWE-502

PlainCVE 團隊 · 發布 2026-10-14 · AI 輔助 · 媒體簡報 ↓

AI 審稿 2026-10-14(未經人工)指令測試:未提供漏洞重現:未進行驗證紀錄 ↓

Xoscar 0.1.0 到 0.11.2(含)會把從網路收到的資料直接還原成 Python 物件,能連到 actor-pool 連接埠的人不需登入就能執行任意程式碼。

誰會中使用 xoscar 0.1.0 到 0.11.2(含)的系統,且攻擊者能透過網路連到 actor-pool 的 TCP 連線管道(對不受信任網路開放時風險最高)。
後果攻擊者能以伺服器程序的身分執行任意程式碼;依 CNA 的說法,這個程序在 GPU 節點上常以 root 執行,但不是一定。
現在該做什麼目前沒有任何來源指出修補版本。在修補釋出前,把 actor-pool 的 TCP 連接埠限制在受信任的網路內(第三方建議),並追蹤官方是否釋出新版。
受影響版本0.1.0 到 0.11.2(含)
修好的版本未確認:沒有任何來源指出修補版本
CVSS 向量
顯示完整向量CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
時間點
  • 首次公開 2026-10-13

藍隊應對手冊

確認、修補 / 緩解、應變、強化。版本符合受影響條件不等於已被入侵;檢查沒有結果也不等於安全,每一項都有能證明與不能證明的範圍。標記的步驟對應下方攻擊流程裡可以擋下攻擊的那一步。

DETECT確認我受影響嗎?有沒有入侵跡象?
  1. 01確認安裝的 xoscar 版本

    0.1.0 到 0.11.2(含)在受影響範圍內。xoscar 可能是其他套件的相依套件,不一定是你直接安裝的,請在每個 Python 環境都檢查。

    唯讀查詢
    pip show xoscar | grep -i '^version'
  2. 02找出可從外部連到的 actor-pool 連接埠

    攻擊者需要能透過網路連到 actor-pool 的 TCP 管道;對不受信任網路開放的連接埠風險最高。檢查防火牆、雲端安全群組與容器的連接埠對應(PlainCVE 建議)。

MITIGATE修補 / 緩解先修補;還不能修補時先擋住
  1. 01把 actor-pool 連線限制在受信任網路

    OffSeq(AI 產生的第三方分析)建議在官方修補前,只讓受信任的網路連到 actor-pool TCP 管道,並以網路層控制擋掉不受信任的連線。這不是廠商提供的建議。

  2. 02追蹤修補版本

    截至目前沒有任何來源指出修補版本、修補 commit 或廠商公告。請持續關注 xorbitsai/xoscar 的發布頁面與 GHSA-5rfg-55mw-4h28。

RESPOND應變發現入侵跡象時
  1. 01曾對外暴露時,把主機視為可能已遭入侵

    如果受影響版本的 actor-pool 連接埠曾對不受信任的網路開放,請調查該主機並輪替上面存放的憑證。這是 PlainCVE 的預防性建議,沒有任何來源證實已有實際利用,證據中也未見官方應變指引。

HARDEN強化長期避免同類問題
  1. 01不要以 root 執行服務程序

    CNA 指出伺服器程序在 GPU 節點上常以 root 執行;改用權限較低的帳號,可限制被入侵時的影響範圍(PlainCVE 建議)。

  2. 02內部叢集通訊也要放在隔離網段

    分散式運算框架的內部連接埠通常預設信任對方,不應直接暴露在網際網路或共用網段(PlainCVE 建議)。

完整修復步驟與說明

目前沒有已確認的修補版本;OffSeq 的第三方資料也表示修補狀態尚未確認。

  1. 用 pip show xoscar 在每個 Python 環境確認版本;容器映像檔也要檢查。
  2. 在官方修補前,依 OffSeq(AI 產生的第三方分析)的建議,只讓受信任的網路連到 actor-pool TCP 管道。這不是廠商的建議,但在沒有修補時是最直接的降低風險方式。
  3. 修補版本釋出後,以廠商的發布說明為準升級,不要只依版本號推測。

攻擊流程

從左到右是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。

由上到下是攻擊發生的順序。藍色盾牌代表這一步可以被擋下,越早擋下越好。點圖示可看細節。

Xorbits Xoscar actor-pool 不安全反序列化:不需登入即可遠端執行程式碼: 1. 連到 actor-pool 的 TCP 連線管道 → 2. 送出特製的資料 → 3. 資料在檢查訊息類型前就被還原成物件 → 4. 以伺服器程序身分執行任意程式碼CVE-2026-49950 · Xorbits Xoscar actor-pool 不安全反序列化:不需登入即可遠端執行程式碼攻擊者你的系統連到 actor-pool 的 TCP 連線管道 — 攻擊者只需要能從網路連到這個連接埠,不需要任何帳號或密碼。 1連到 actor-pool 的TCP 連線管道送出特製的資料 — Xoscar 不會先確認對方身分,收到什麼就處理什麼;CNA 的評分也標示不需要使用者互動。 2送出特製的資料資料在檢查訊息類型前就被還原成物件 — 依 CNA 描述,SocketChannel.recv() 把未經驗證的資料交給 cloudpickle.loads();pickle 格式在還原過程中就可能執行程式碼,早於任何類型檢查。 3資料在檢查訊息類型前就被還原成物件以伺服器程序身分執行任意程式碼 — 依 CNA 的說法,這個程序在 GPU 節點上常以 root 執行。(PlainCVE 判斷)若以 root 執行,影響可能擴及整台主機。 4以伺服器程序身分執行任意程式碼攻擊路徑可在此擋下PlainCVE · plaincve.date/vulns/cve-2026-49950-xoscar-actor-pool-deserialization-rce · CC BY 4.0
Xorbits Xoscar actor-pool 不安全反序列化:不需登入即可遠端執行程式碼: 1. 連到 actor-pool 的 TCP 連線管道 → 2. 送出特製的資料 → 3. 資料在檢查訊息類型前就被還原成物件 → 4. 以伺服器程序身分執行任意程式碼CVE-2026-49950 · Xorbits Xoscaractor-pool 不安全反序列化:不需登入即可遠端執行程式碼連到 actor-pool 的 TCP 連線管道 — 攻擊者只需要能從網路連到這個連接埠,不需要任何帳號或密碼。 1攻擊者連到 actor-pool 的 TCP 連線管道送出特製的資料 — Xoscar 不會先確認對方身分,收到什麼就處理什麼;CNA 的評分也標示不需要使用者互動。 2攻擊者送出特製的資料資料在檢查訊息類型前就被還原成物件 — 依 CNA 描述,SocketChannel.recv() 把未經驗證的資料交給 cloudpickle.loads();pickle 格式在還原過程中就可能執行程式碼,早於任何類型檢查。 3你的系統資料在檢查訊息類型前就被還原成物件以伺服器程序身分執行任意程式碼 — 依 CNA 的說法,這個程序在 GPU 節點上常以 root 執行。(PlainCVE 判斷)若以 root 執行,影響可能擴及整台主機。 4你的系統以伺服器程序身分執行任意程式碼攻擊路徑可在此擋下PlainCVE · CC BY 4.0plaincve.date/vulns/cve-2026-49950-xoscar-actor-pool-deserialization-rce
圖片可自由用於報導與教學,採 CC BY 4.0,圖上已附出處。
  1. 攻擊者

    連到 actor-pool 的 TCP 連線管道

    攻擊者只需要能從網路連到這個連接埠,不需要任何帳號或密碼。

    防禦: 把 actor-pool 連接埠限制在受信任的網路內(OffSeq 的第三方建議,非官方)。

  2. 攻擊者

    送出特製的資料

    Xoscar 不會先確認對方身分,收到什麼就處理什麼;CNA 的評分也標示不需要使用者互動。

  3. 你的系統

    資料在檢查訊息類型前就被還原成物件

    依 CNA 描述,SocketChannel.recv() 把未經驗證的資料交給 cloudpickle.loads();pickle 格式在還原過程中就可能執行程式碼,早於任何類型檢查。

    防禦: 目前沒有已確認的官方修補。

  4. 你的系統

    以伺服器程序身分執行任意程式碼

    依 CNA 的說法,這個程序在 GPU 節點上常以 root 執行。(PlainCVE 判斷)若以 root 執行,影響可能擴及整台主機。

    防禦: 不要以 root 執行 Xoscar 程序,降低被入侵後的影響(PlainCVE 建議)。

影響範圍

條件是否受影響
xoscar 0.1.0 到 0.11.2(含),且 actor-pool TCP 管道可從不受信任的網路連到受影響,可被遠端利用
xoscar 0.1.0 到 0.11.2,但 actor-pool 只在受信任的內部網路可達版本仍受影響;遠端攻擊者需先進入該網路
0.11.2 之後的版本未確認:沒有任何來源指出修補版本

受影響範圍來自 VulnCheck 的公告與 CVE 紀錄。CVE 由 VulnCheck 以 CNA(有權核發 CVE 編號的組織)身分核發,不是 Xoscar 的開發者 Xorbits。目前證據中沒有廠商自己的安全公告;GitHub Advisory Database 收錄為 GHSA-5rfg-55mw-4h28,但標示為尚未經 GitHub 審查。

原理

Xoscar 是一套分散式運算框架,多個程序(actor pool)之間透過 TCP 連線互傳訊息。傳送時,物件會被「序列化」成位元組;接收時再「反序列化」還原成物件。

依 CNA 的描述,SocketChannel.recv() 把從網路收到、未經驗證的資料直接交給 cloudpickle.loads()。pickle 是 Python 的物件格式,設計上允許資料在還原時指定要呼叫的函式。所以在程式還沒來得及檢查「這是哪種訊息」之前,攻擊者夾帶的程式碼就已經執行了。加上這個管道不需要認證,能連到連接埠就夠了。這類弱點對應 CWE-502(反序列化不受信任的資料)。

在廠商 v0.11.2 的原始碼中,SocketChannel.recv() 確實會把讀到的標頭與資料交給 deserialize(),而序列化模組有匯入 cloudpickle。**PlainCVE 的判斷:**這與 CNA 的描述一致。本站取得的 core.pyx 快照中,unpickle_buffers() 內有 cloudpickle.loads 呼叫,和 CNA 標示的位置相近;但快照沒有行號,無法確認是否就是 CNA 引用的第 260 行,從 recv() 到該呼叫的完整路徑本站也未逐步核對。

有問題的思路(概念示意,不是原始程式碼):

展開程式碼範例(python)
data = sock.read()
msg = cloudpickle.loads(data)   # 還原時就可能執行資料中指定的函式
if not isinstance(msg, KnownMessage):  # 檢查來得太晚
    raise ValueError

較安全的思路(通用原則示意,不是官方修補):

展開程式碼範例(python)
peer = authenticate(sock)        # 先確認對方是叢集內受信任的成員
data = sock.read()
msg = parse_safe_format(data)    # 對外部資料使用不會執行程式碼的格式
validate_type(msg)

時間軸

日期事件
2026-06-02CVE 編號保留
2026-10-13CVE 紀錄公開(CNA:VulnCheck)
2026-10-14未列入 CISA KEV;NVD 狀態為「Received」(已收到、尚未分析)

延伸閱讀

  • 評分差異:CNA 的 CVSS 4.0 為 9.3,CVSS 3.1 為 9.8。不同網站引用的分數不同,是因為 CVSS 版本不同,並不互相矛盾。NVD 尚未分析,沒有自己的分數。
  • 利用狀況:截至 2026-10-14 未列入 CISA KEV。是否已遭實際利用、是否曾在修補前被利用,目前都沒有證據;CNA 的 CVSS 4.0 紀錄也未定義利用成熟度。
  • 權限:程式碼以伺服器程序的身分執行。CNA 指出在 GPU 節點上常以 root 執行,這是常見情況,不是必然。
  • 發現者:Valentin Lobstein(Chocapikk)。
  • 廠商:證據中沒有 xorbitsai 的安全公告、安全 issue 或發布說明;本站取得的公開 issue 清單也沒有相關回報,但這不代表一定不存在。

驗證紀錄 AI 依審稿規則逐項核對來源,全部通過;未經人工審稿,也尚未在我們的環境重現

AI 審稿2026-10-14 · 審稿規則

驗證紀錄只寫環境與結果,不公開重現步驟或可攻擊他人系統的程式。詳見 政策.

來源

  1. CVE / NVD / OSVCVE-2026-49950 (CVE record, JSON) · CVE Program (CNA: VulnCheck), 2026-10-13 · 查閱 2026-10-14
  2. CVE / NVD / OSVNVD API - CVE-2026-49950 · NIST · 查閱 2026-10-14
  3. 安全公告Xorbits Xoscar Unauthenticated Deserialization RCE via Actor Pool · VulnCheck · 查閱 2026-10-14
  4. 安全公告GitHub Advisory Database entry for CVE-2026-49950 (GHSA-5rfg-55mw-4h28, unreviewed) · GitHub · 查閱 2026-10-14
  5. 其他CVE-2026-49950 scores · ThreatINT · 查閱 2026-10-14
  6. 研究文章CVE-2026-49950: Deserialization of Untrusted Data in xorbitsai xoscar · OffSeq Radar · 查閱 2026-10-14
  7. 廠商說明xoscar v0.11.2 socket.py · xorbitsai (GitHub) · 查閱 2026-10-14
  8. 廠商說明xoscar v0.11.2 serialization/core.pyx · xorbitsai (GitHub) · 查閱 2026-10-14

媒體簡報

一句話

Xoscar 是 Xorbits 開發的 Python 分散式運算框架。它的 0.1.0 到 0.11.2 版會把從網路收到的資料直接還原成程式物件,任何能連到其 actor-pool 連接埠的人都不需登入就能在伺服器上執行程式碼。這個漏洞的 CVE 於 2026 年 10 月 13 日公開,CNA 給出 CVSS 4.0 9.3 分;截至目前沒有任何來源指出修補版本。

關鍵數字

嚴重度
CVSS 4.0 9.3(CNA);CVSS 3.1 9.8 cve.threatint.com
受影響版本
xoscar 0.1.0 到 0.11.2(含) vulncheck.com
CVE 公開日
2026-10-13 cveawg.mitre.org
發現者
Valentin Lobstein(Chocapikk) vulncheck.com
CNA
VulnCheck(非廠商) cveawg.mitre.org

已確認

  • xoscar 0.1.0 到 0.11.2 的 actor-pool TCP 管道存在不需認證的反序列化漏洞,可導致遠端執行程式碼(CNA 紀錄)。
  • 廠商 v0.11.2 原始碼中,SocketChannel.recv() 會把從 socket 讀到的資料交給 deserialize() 處理。
  • 截至 2026-10-14,未列入 CISA KEV。

尚未確認 / 說法不一

  • 沒有任何來源指出修補版本或修補 commit,本站取得的證據中也未見廠商公告(不代表一定不存在)。
  • 沒有證據顯示是否已遭實際利用,也無法確認是否在修補前就被利用。
  • 原始碼快照中 unpickle_buffers() 內有 cloudpickle.loads 呼叫,但快照沒有行號,無法確認是否就是 CNA 引用的第 260 行;從 recv() 到該呼叫的完整路徑本站未逐步核對。

可引用的一句話

這個漏洞的問題在於:程式先把陌生人寄來的包裹拆開,才去看寄件人是誰。

圖片

下載分享圖(PNG) · 攻擊流程圖(可下載)

引用時請標示「PlainCVE」並附上本頁連結。 完整引用格式見下方「如何引用本頁」。有事實錯誤請回報.

如何引用本頁

本文採 CC BY 4.0,轉載請保留署名與連結。

PlainCVE 團隊(2026)。《Xorbits Xoscar actor-pool 不安全反序列化:不需登入即可遠端執行程式碼》。PlainCVE。https://plaincve.date/vulns/cve-2026-49950-xoscar-actor-pool-deserialization-rce(查閱日期:YYYY-MM-DD)
BibTeX
@misc{cve202649950xoscaractorpooldeserializationrce2026,
  title  = {Xorbits Xoscar actor-pool 不安全反序列化:不需登入即可遠端執行程式碼},
  author = {PlainCVE 團隊},
  year   = {2026},
  howpublished = {PlainCVE},
  url    = {https://plaincve.date/vulns/cve-2026-49950-xoscar-actor-pool-deserialization-rce},
  note   = {更新於 2026-10-14}
}