![]() |
![]() |
| 通常PC用 / 人気 更新 今日 カテ |
| 電子計算機 > ソフト > OS > 製品/作品 > Unix > POSIX > Linux > バグ |
| CVE-2013-0914 |
| 辞書:電算用語の基礎知識 ソフト用語編 (PYSOFT) |
| 読み:スィーヴィーイー-にーゼロいちさん-ゼロきゅういちよん |
| 外語:CVE-2013-0914 |
| 品詞:固有名詞 |
Linuxカーネルに存在した脆弱性の一つ。ASLR保護メカニズムを回避される脆弱性。
|
|
| 概要 |
MITRE社の脆弱性情報データベースCommon Vulnerabilities and Exposures(CVE)に登録されている脆弱性の一つ。
ログイン可能な一般ユーザーにより、sigactionシステムコールを含む巧妙に細工されたアプリケーションを介し、ASLR保護メカニズムを回避される可能性があるセキュリティホールである。
Emese Revfy氏により発見された。
| 特徴 |
| 問題 |
ASLR保護メカニズムを回避される脆弱性
| 原因 |
kernel/signal.c内のflush_signal_handlers()関数での初期化に不足があった。
具体的には、シグナルハンドラーがforkされた場合、sa_restorerの場所がクリアされず、子プロセスに対し親プロセスのアドレス空間の場所が漏洩する。
すなわち、sigaction()を呼び出した時に返されるsa_restorer値を調べることにより、親プロセスのASLRを回避できる可能性がある。
| 修正 |
実質的に1行の追加で修正される。
修正は「signal: always clear sa_restorer on execve
」と題されている。
if (force_default || ka->sa.sa_handler != SIG_IGN)
ka->sa.sa_handler = SIG_DFL;
ka->sa.sa_flags = 0;
+#ifdef __ARCH_HAS_SA_RESTORER
+ ka->sa.sa_restorer = NULL;
+#endif
sigemptyset(&ka->sa.sa_mask);
ka++;
}
| 検証 |
flush_signal_handlers()関数でタスクの全ハンドラーがフラッシュされる。
この処理内で、sa_restorerが初期化されなかったため、結果として情報が子プロセスに渡されてしまっていた。
修正により、NULLを代入することで初期化し、もってこの問題は修正された。
なお、Linuxのmanpageによれば、sa_restorer要素は廃止予定であり使用すべきではない、とある。
| リンク |
| 通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |