按 Enter 到主內容區
:::

TWCERT-電子報

:::
發布日期:
字型大小:

Linux Kernel內ALSA 定序介面、waitid()系統呼叫存在弱點導致系統權限遭剽竊

CVE編號 CVE-2017-15265 CVE-2017-5123
影響產品 kernel 4.13.8以前版本
解決辦法 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/snapshot/linux-96ca579a1ecc943b75beba58bebb0356f6cc4b51.tar.gz

http://mailman.alsa-project.org/pipermail/alsa-devel/2017-October/126292.html

張貼日 2017-11-01
上稿單位 TWCERT/CC

●概述:
Linux Kernel 2項弱點,分別發生於ALSA 定序介面、waitid()系統呼叫,出現Use After Free記憶體、取得控制權等瑕疵,本機駭客可藉此提升至系統管理者,執行任意程式,官方就相關版本軟體提供對應之安全更新。
●編註:
(1)使用釋放記憶體(Use After Free Memory)錯誤:Linux核心有一組音效卡驅動元件,稱作高級Linux音效體系(ALSA:Advanced Linux Sound Architecture),替代從前的OSS(開放聲音系統),在ALSA次系統內程序包含ALSA sequencer interface( /dev/snd/seq) ioctl call(關連到sound/core/seq/seq_clientmgr.c及sound/core/seq/seq_ports.c),駭客加工過的ioctl call夾藏在惡意程式中,一旦執行則發生多個procedure搶著輸出,其輸出秩序無規律控制,形成競爭狀態(Race condition),從而觸發ALSA定序器介面之”Use After Free Memory”錯誤,允許駭客提升權限且隨意執行程式碼。
(2) Access Control 瑕疵:Linux核心內大量system call,其中waitid()函式,專事child procedure與parent procedure間交互影響,新child 程序啟動後有獨立生命周期與位址空間,parent程序暫停待命,待child 程序結束後,waitpid()回傳child procedur的識別碼(PID)與結束狀態值(status),讓parent程序繼續。本機駭客利用waitpid()的瑕疵取得控制,觸發記憶體崩潰(memory corruption)錯誤,允許駭客提升權限且隨意執行程式碼。

回頁首