資安團隊 Parameter 公開了一條已修補的 ChatGPT 攻擊鏈:攻擊者傳送一個普通的對話分享連結,受害者在登入狀態下開啟後,攻擊者的 JavaScript 就會在 chatgpt.com 的工作階段中執行。研究人員實測列出了受害者最近的對話,讀取到一段從未分享過的私密對話,並將少量資料傳送到外部伺服器。
整個過程不必安裝應用程式,不必連接第三方外掛,也不必開啟開發者工具。OpenAI 已於 10 月 26 日確認修補,並將此漏洞定為 P1。
兩個隔離良好的功能,被一個鍵盤串了起來
ChatGPT 的 HTML 預覽執行在獨立的隔離網域中,依設計無法觸及主頁面。問題出在對話裡的互動式圖形:它載入了數學輸入函式庫 MathLive,而這個函式庫會在主頁面安裝一個接收虛擬鍵盤訊息的監聽器。
Parameter 的報告把缺陷拆成幾個層次:
- 監聽器不檢查訊息來自何處,隔離網域裡的預覽也能向它傳送訊息
- 訊息可以更改鍵盤配置,配置又允許攜帶 HTML,最後寫入主頁面
- 負責「淨化」的函式其實只是把字串標記為可信
- 新插入的 iframe 沒有沙箱屬性,因而繼承了 chatgpt.com 的身分
- 內容安全政策放行了 YouTube 腳本,研究人員藉由其中一個回呼介面繞過了限制
早期版本還需要受害者先連接研究人員的 ChatGPT App,後來他們把圖形與惡意預覽放進同一段公開對話,僅靠分享功能就能投遞攻擊。報告同時公布了部分請求細節,這裡不予轉述。
就攻擊效果而言,報告實測的是讀取對話與外送資料。「代表受害者執行任何操作」是研究人員從前端驗證介面推論出來的說法,並非逐項示範。
八天走完的時間線
報告寫得相當詳細。10 月 13 日確認 MathLive 這條路徑,16 日做到跨帳號、跨工作區重現,18 日提交至 OpenAI 的漏洞獎勵計畫。OpenAI 於 21 日重現並將等級從 P2 提升為 P1,22 日通知其中一個前端已修補、另一個仍在更新,23 日先調整內容安全政策,擋下部分攻擊路徑。
ChatGPT 網頁版同時運行著兩個前端版本,因此修補也分成兩步。
帳號接管不是頭一回
分享、外掛、快取,ChatGPT 過去的帳號接管類漏洞大多出在主流程的邊緣。2023 年研究員 Nagli 利用網頁快取欺騙取得存取權杖,同樣只需受害者點一次連結;2024 年 Salt Labs 揭露過外掛授權流程中的重新導向問題。這一次的入口換成了負責內容渲染的第三方函式庫。
MathLive 本身也不是第一次出事,美國國家漏洞資料庫收錄過它的跨站腳本漏洞 CVE-2025-29049,影響 0.103.0 及更早版本。該筆紀錄並未提到虛擬鍵盤訊息,看不出兩者有直接關係。
一般使用者目前不必做什麼。報告沒有提到這條攻擊鏈是否曾被實際利用,OpenAI 也沒有就此單獨發布公告,我們無法查證是否有受害者。有一個習慣倒是值得保留:陌生人傳來的 ChatGPT 分享連結,請和其他網頁連結一樣謹慎看待。
報告最後給開發者的建議很樸實:跨視窗訊息要同時驗證來源與傳送視窗,設定項目不要攜帶原始 HTML,內容安全政策只能當作備援防線。
參考來源:CocoLoop、Parameter 資安研究報告、美國國家漏洞資料庫;修補進度與獎金依研究團隊揭露內容,OpenAI 未另行公告。