跳到正文
CVE-high(cvefeed.io)·· 2 小時前精選AI 評分86

CVE-2026-110879:Jackson‑databind 透過泛型引數與陣列元素型別繞過 PolymorphicTypeValidator,允許任意類別例項化(CVE-2026‑54512 的不完整修復)

CVE-2026-110879 - jackson-databind: PolymorphicTypeValidator bypass via generic type arguments and array element types allows arbitrary class instantiation (incomplete fix for CVE-2026-54512)

AI 導讀

此漏洞使 Jackson‑databind 在泛型處理時可繞過 PolymorphicTypeValidator,允許攻擊者在類別名稱型別 ID 中注入任意類別並執行命令。

推薦理由

此漏洞揭示 Jackson 解析器在泛型處理上的安全缺陷,提示開發者需檢查型別驗證與預設型別設定,避免任意類別例項化。

正文 · AI 翻譯

譯文尚未完整,完整內容請切換至原文。

jackson-databind 檢驗 class-name 型別 ID 的外部類別,但允許攻擊者選擇的類別在其泛型引數內,即使這些類別違反宣告的型別或會被直接型別 ID 拒絕。這繞過了為 CVE-2026-54512 (GHSA-j3rv-43j4-c7qm) 所新增的泛型引數驗證,這是未完成的修補。 DatabindContext._resolveAndValidateGeneric() 會先檢查外部類別是否符合宣告的基礎型別,然後將型別 ID 的每個引數傳遞給 _validateTypeParameter(),該方法會將引數對照外部基礎型別驗證,而非強制執行其相對應的宣告泛型繫結。它還會以未通過子型別檢查的引數呼叫驗證器。使用預設的 DefaultBaseTypeLimitingValidator 時,即使同一個類別被直接型別 ID 拒絕,仍會在泛型子型別內接受不相關的類別。若 allowIfBaseType(...) 規則批准外部型別,Jackson 會替換為 LaissezFaireSubTypeValidator,導致已配置的驗證器不再限制嵌入的引數。類似地,像 [Lpkg.Gadget; 這類普通陣列型別 ID 的元素型別,在陣列的基礎型別被批准後亦未經驗證。 受影響的路徑包括使用預設 Jackson 3.x JsonMapper 的基於註解的 class-name 多型、在 Jackson 2.x 與 3.x 中設定的預設型別化,以及暴露該預設型別化的整合。預設驗證器情況下不需要應用程式自訂驗證器:使用 @JsonTypeInfo(use = Id.CLASS) 時,直接的 gadget 型別 ID 會被拒絕為「Not a subtype」,但將同一個 gadget 包裝在泛型包裝器中的型別 ID 會被接受並反序列化,包括攻擊者提供的 bean 屬性。若 class-name 預設型別化允許 Map,宣告為 Map 的屬性會接受 HashMap;map-key 發現會將攻擊者控制的 JSON 屬性名稱傳遞給所選類別的單字串建構子。若 Spring 在類路徑上且 XML 受攻擊者控制,應用程式可載入該建構子,該建構子載入 XML 並以應用程式帳號呼叫 ProcessBuilder.start(),從而實現任意指令執行。 此問題影響 com.fasterxml.jackson.core:jackson-databind 版本 2.10.0 及以上,以及 tools.jackson.core:jackson-databind 版本 3.0.0 及以上。低於 2.10.0 的版本不受影響,因為 PolymorphicTypeValidator 是在 jackson-databind 2.10.0 中引入的。

Impact

受影響產品

以下產品受 CVE-2026-110879 漏洞影響。 即使 cvefeed.io 知道受影響產品的確切版本,該資訊仍未在下表中呈現。

ID 供應商 產品 行動
1 Fasterxml jackson-databind

Common Vulnerability Scoring System(CVSS)是一套標準化框架 用於評估軟體與系統漏洞的嚴重性。 我們為每個 CVE 收集並顯示來自各種來源的 CVSS 分數。

分數 版本 嚴重性 向量 可利用性分數 影響分數 來源
CVSS 3.1 關鍵 36c7be3b-2937-45df-85ea-ca7133ea542c
CVSS 3.1 危急 MITRE-CVE

請將 jackson-databind 更新至能正確驗證泛型引數與類別名稱的版本。

  • 請將 jackson-databind 更新至 2.16.0 或更高版本。
  • 確保已強制執行泛型型別驗證。
  • 審查並限制預設型別配置。
  • 為受影響版本套用供應商補丁。

以下為精選的外部連結,提供與 CVE-2026-110879 相關的深入資訊、實用解決方案與有價值工具。

URL Resource
https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-j3rv-43j4-c7qm
https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-m8xf-2cr7-77ph
https://www.cve.org/CVERecord?id=CVE-2026-54512

雖然 CVE 確定特定的漏洞例項,CWE 則將可能導致漏洞的常見缺陷或弱點分類。CVE-2026-110879 與以下 CWEs 相關聯:

Common Attack Pattern Enumeration and Classification (CAPEC) 儲存攻擊模式,這些模式描述了對手為利用 CVE-2026-110879 弱點所採用的常見屬性與方法。

我們掃描 GitHub 倉庫以偵測新的概念驗證(PoC)攻擊。以下列表為已在 GitHub 上釋出的公共攻擊與概念驗證(PoC)集合,按最近更新時間排序。

由於潛在的效能問題,結果僅限於前 15 個倉庫。

以下列表為文章中提及 CVE-2026-110879 漏洞的新聞。

以下表格列出 CVE-2026-110879 漏洞隨時間所做的變更。

漏洞歷史細節有助於瞭解漏洞的演變,以及辨識可能影響漏洞嚴重性、可利用性或其他特徵的最新變更。

  • 新 CVE 已接收 由 36c7be3b-2937-45df-85ea-ca7133ea542c

    十月. 28, 2026

    Action Type Old Value New Value
    Added Description jackson-databind 驗證類別名稱型別 ID 的外層類別,但會接受攻擊者選擇的類別作為其泛型引數,即使這些類別違反宣告型別或會被直接型別 ID 拒絕。這繞過了為 CVE-2026-54512 (GHSA-j3rv-43j4-c7qm) 所加入的泛型引數驗證,且此為不完整修正。 DatabindContext._resolveAndValidateGeneric() 會將外層類別與宣告的基底型別做比對,然後將型別 ID 的每個引數傳給 _validateTypeParameter(),該方法會以外層基底型別驗證引數,而非強制其對應的宣告泛型繫結。它亦會以未通過子型別檢查的引數呼叫驗證器。在預設的 DefaultBaseTypeLimitingValidator 下,即使同一類別作為直接型別 ID 被拒絕,仍會接受在泛型子型別內的無關類別。當 allowIfBaseType(...) 規則允許外層型別時,Jackson 會取代為 LaissezFaireSubTypeValidator,導致已設定的驗證器不再限制嵌入的引數。像 [Lpkg.Gadget; 這類純陣列型別 ID 的元素型別,在陣列基底型別被批准後亦未經驗證。 受影響的路徑包括使用預設 Jackson 3.x JsonMapper 的基於註解的類別名稱多型、在 Jackson 2.x 與 3.x 中設定的預設型別化,以及公開該預設型別化的整合。預設驗證器案例不需要應用程式自行撰寫驗證器:使用 @JsonTypeInfo(use = Id.CLASS) 時,直接的 gadget 型別 ID 會被拒絕為「Not a subtype」,而以同一 gadget 為泛型包裝的型別 ID 則會被接受並反序列化,包含攻擊者提供的 bean 屬性。若類別名稱預設型別化允許 Map,宣告為 Map<String,String> 的屬性會接受 HashMap<FileSystemXmlApplicationContext,String>;map-key 探測隨後會將攻擊者控制的 JSON 屬性名稱傳遞給所選類別的一字串建構子。若 Spring 在類路徑上且 XML 為攻擊者控制,應用程式可載入該建構子,建構子載入 XML 並以應用程式帳號執行 ProcessBuilder.start(),從而得到任意指令執行。 此問題影響 com.fasterxml.jackson.core:jackson-databind 從 2.10.0 開始以及 tools.jackson.core:jackson-databind 從 3.0.0 開始。2.10.0 之前的版本不受影響,因為 PolymorphicTypeValidator 是在 jackson-databind 2.10.0 中引入。
    新增 CVSS V3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    新增 CWE CWE-502
    新增 受影響 New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/110xxx/CVE-2026-110879.json">CVE-2026-110879</a>
    新增 參考 https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-j3rv-43j4-c7qm
    新增 參考 https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-m8xf-2cr7-77ph
    新增 參考 https://www.cve.org/CVERecord?id=CVE-2026-54512

EPSS 是每日估算在未來 30 天內觀測到利用活動的機率。 以下圖表顯示此漏洞的 EPSS 分數歷史。

來源: CVE-high (cvefeed.io)
開啟原文