
知名大型語言模型調度開源框架LangChain團隊發布安全通報,揭露核心套件langchain-core存在序列化注入漏洞CVE-2025-68664,該漏洞CVSS 3.1基礎分數為9.3,屬重大等級。受影響版本為langchain-core小於0.3.81,或介於1.0.0以上且低於1.2.5。官方已釋出修補版本0.3.81與1.2.5,並同步收緊load()與loads()的預設行為,以降低誤用風險。
漏洞出在langchain-core本身的dumps與dumpd序列化功能。LangChain有一套內部資料格式,會用lc這個保留欄位來標記這段資料可以在之後被還原成LangChain物件。官方指出,問題在於dumps()與dumpd()在序列化一般字典資料時,沒有妥善處理剛好含有lc欄位的外部可控內容。結果是這些資料在後續經由load()或loads()還原時,可能被當成真正的LangChain物件來建立,進而引發安全風險。
官方指出,較常見的風險並非攻擊者直接提供序列化內容要求系統載入,而是大型語言模型回應中的欄位,可能在提示詞注入影響下,被引導生成攻擊者想要的內容或結構,例如metadata、additional_kwargs或response_metadata等。當這些欄位經由框架既有流程被序列化,並在串流事件或日誌等路徑於後續階段再度還原,就可能跨越開發者原先假設的信任邊界,形成可被利用的注入點。
就可能造成的後果而言,其一是環境變數機密外洩,當反序列化在secrets_from_env選項啟用的情況下,攻擊者要是能讓注入結構被還原,就有機會從環境變數取得機密資料。其二是不安全物件實例化,雖然LangChain對可還原的類別採取命名空間限制,但仍可能在既有受信任命名空間內實例化Serializable子類別,當建構流程伴隨網路呼叫或檔案操作等副作用,將擴大安全風險。
LangChain在本次修補中,除了補上序列化跳脫缺口,也一併收緊load()與loads()的預設行為。官方解釋,新版引入更嚴格的允許清單策略,並將secrets_from_env預設由True改為False,同時以init_validator預設阻擋Jinja2樣板等高風險初始化行為。官方也提醒這些變更對少數使用情境可能屬破壞性調整,使用者需留意相依程式碼是否仰賴舊預設。
LangChain在JavaScript版本也發布了相似機制的漏洞安全通報CVE-2025-68665,指出toJSON未跳脫含lc鍵的使用者可控物件,可能在後續load()時造成環境變數機密外洩與不安全實例化,並將secretsFromEnv明確改為預設false,以降低環境變數機密外洩與不安全實例化風險。
熱門新聞
2025-12-24
2025-12-23
2025-12-24
2025-12-22
2025-12-19
2025-12-23
2025-12-24