Black Hat Europe 2025 | Taking Over Your Amazon Account With A Kindle
三句話摘要
Amazon Kindle設備存在堆溢出漏洞,可通過惡意有聲書實現遠端程式碼執行並竊取用戶Amazon賬戶。 看似簡單的日用設備可能隱藏龐大的攻擊面,通過多漏洞鏈式利用即使不完美的exploit也能造成致命威脅,提醒開發者應在基礎編碼與架構設計階段重視安全。 多階段漏洞利用鏈的設計 — 演講者發現兩個獨立漏洞,通過串聯利用實現完整的遠端攻擊鏈:先利用Audible解析器的堆溢出獲得framework用戶權限,再透過LIPC服務的路徑遍歷漏洞提權至root,最終可完全控制設備。
重點整理
重點- 1
多階段漏洞利用鏈的設計 — 演講者發現兩個獨立漏洞,通過串聯利用實現完整的遠端攻擊鏈:先利用Audible解析器的堆溢出獲得framework用戶權限,再透過LIPC服務的路徑遍歷漏洞提權至root,最終可完全控制設備。
- 2
創新的exploit技術應對現代防護 — 面對ASLR和NX保護,講者利用超大內存分配(數MB)來降低虛表地址熵,並發現ARM Thumb模式中規範外的LDM gadget實現可靠的棧樞紐,即使成功率僅1/1000,自動重啟機制仍使其實用。
- 3
複雜多媒體格式解析的風險 — Kindle內置的MP4/AAX自定義C語言解析器從頭實現而非使用成熟庫,導致基礎編碼缺陷如未檢查的整數乘法,這類漏洞廣泛存在於多個Kindle機型及Audible跨平台應用中。
- 4
IPC框架的訪問控制缺失 — Amazon自有的LIPC框架缺乏中央授權機制,依賴個別服務實現卻形同虛設,允許低權限用戶任意調用root級服務,其設計哲學顯然優先於安全。
實用技巧與重點
乾貨- 漏洞技術細節:
- 漏洞位置:libaudibleaax.so 中 STSC atom 解析
- 溢出原因:`entries_count × 12 bytes` 在32位系統整數溢出
- 範例:0x15555556 × 12 = 8(溢出)
- 緩衝區大小:應為數MB但因溢出僅8位元組
- 虛表覆蓋對象:ISTDIOInputStream
- Exploit技術:
- 虛表噴射:在cover image中分配數千頁假虛表
- 控制數據分配:PyMP4 + 自定義修改支援AAX格式
- ROP gadget:ldm r0!, {r0-r11, sp, pc} in libsqlite.so (Thumb mode)
- 棧樞紐:r8暫存器指向溢出緩衝區
- 目標庫:libc 2.20(超過10年前版本)
- mprotect gadget:來自scanner二進制檔案的CSU gadget
- LIPC漏洞:
- 目標服務:com.lab126.keyboard(KB進程執行,root權限)
- 易受攻擊屬性:languages 和 language
- 路徑遍歷:`../../mntus/[attacker-controlled-path]`
- 加載機制:dlopen() 加載惡意共享庫
- 時程與賞金:
- 上報時間:2026年1月(通過HackerOne)
- Audible漏洞修復:2026年3月
- LIPC漏洞修復:2026年9月
- 嚴重等級評定:各自高危,組合為緊急
- 漏洞賞金:$20,000(已捐贈慈善機構)
- 攻擊參數:
- 可靠性:~1/1000(因ASLR熵~9位及堆佈局隨機性)
- 掃描器重啟間隔:~60秒
- 總攻擊持續時間:數小時(後台自動進行)
- 用戶感知:無(掃描器靜默崩潰)
結論
結論“看似簡單的日用設備可能隱藏龐大的攻擊面,通過多漏洞鏈式利用即使不完美的exploit也能造成致命威脅,提醒開發者應在基礎編碼與架構設計階段重視安全。”
完整解析
詳細Amazon Kindle作為全球最廣泛的電子閱讀器,自2007年推出以來擁有數百萬用戶。雖然看似簡單的設備,但其連線的互聯網特性、持久的電池續航與對Amazon賬戶的直接存取權限,使其成為極具價值的攻擊目標。講者Valentino在研究Kindle安全時,發現了一條完整的利用鏈,能夠通過惡意有聲書實現對用戶Amazon賬戶的完全控制。
首先是對Audible AAX解析器的深入分析。初期使用AFL++進行模糊測試效果不佳,因為AAX檔案基於ISOBMFF(ISO Base Media File Format)標準,擁有超過100種可能的atom類型,而且AAX檔案通常非常龐大。講者改為手動逆向分析Audible SDK庫,在STSC atom解析部分發現了一個經典的整數溢出漏洞:程式讀取一個無符號32位的entries計數,將其乘以12位元組後分配記憶體,但由於乘法在32位系統上執行,輸入如0x15555556將溢出到僅8位元組的緩衝區。隨後的迴圈會從檔案讀取該計數個12位元組的記錄,導致明顯的堆溢出。
要觸發此漏洞需滿足特定條件:AAX檔案須包含JPEG影像(Enhanced Podcasts功能),並在STSD atom中指定JPEG樣本。講者使用PyMP4庫修改了一個合法的AAX檔案,注入了惡意的STSC atom,使漏洞可靠地觸發。
攻擊難點在於將堆溢出轉化為程式碼執行。講者利用溢出來覆蓋ISTDIOInputStream物件的虛表指標,該物件在迴圈中被反覆使用。面對ASLR防護,他採用了一個創新方案:在cover image中分配超過一千頁的記憶體用來儲存偽造的虛表,這個超大分配會觸發glibc的mmap機制,將緩衝區放置在共享庫區域附近,從而顯著降低地址空間熵。配合ARM Thumb模式下的隱藏ROP gadget(ldm指令在規範上不應有pc暫存器,但Cortex-A7實際支援),講者得以動態控制SP和PC暫存器,進而執行ROP鏈來呼叫mprotect並跳轉至shellcode。雖然單次成功率僅約1/1000,但由於掃描器進程在崩潰後會自動無聲重啟,多次重試最終必然成功,甚至攻擊可能在數小時內完成而用戶毫無察覺。
獲得framework用戶權限後,講者轉向LIPC框架尋求提權。LIPC是Amazon自有的進程間通訊庫,服務公開屬性供其他進程讀寫,但缺乏中央授權機制。他發現keyboard服務(執行為root)的setter handler未正確驗證路徑輸入,允許語言設定時的路徑遍歷攻擊。通過指定語言為`../../mntus/[malicious_lib]`,講者可以繞過路徑驗證並最終以dlopen載入自定義共享庫,從而以root權限執行任意程式碼。
最後的演示展示了從有聲書下載、後台漏洞觸發、Amazon賬戶Cookie竊取到完整賬戶接管的全過程。Amazon於三月修復Audible漏洞、九月修復LIPC漏洞,將兩個高危漏洞組合評為緊急,給予$20,000賞金。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

