ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
Linuxカーネルに存在した脆弱性の一つ。sock_diagでの配列境界エラーによる権限昇格の脆弱性。
MITRE社の脆弱性情報データベースCommon Vulnerabilities and Exposures(CVE)に登録されている脆弱性の一つ。
これは、sock_diagの脆弱性により、ログイン可能な一般ユーザーがroot権限で任意のコードを実行することができるという重大なセキュリティホールである。
net/core/sock_diag.c内の__sock_diag_rcv_msg()関数で、nlmsg_typeがSOCK_DIAG_BY_FAMILYの処理において、アドレスファミリーの値がAF_MAX未満かどうかの確認を怠っていた。
このため、大きなアドレスファミリー値を用いることで、sock_diag_handlers[]構造体に対して境界外アクセスを生じさせることができた。
net/core/sock_diag.cの__sock_diag_rcv_msg関数に、範囲確認を追加する。
修正は「sock_diag: Fix out-of-bounds access to sock_diag_handlers[]」と題されている。
if (nlmsg_len(nlh) < sizeof(*req)) return -EINVAL; + if (req->sdiag_family >= AF_MAX) + return -EINVAL; + hndl = sock_diag_lock_handler(req->sdiag_family);
コメントなどを投稿するフォームは、日本語対応時のみ表示されます