2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CVE-2016-7117脆弱性のチェックと対応

Posted at

この記事は

  • Linuxカーネルのやばげな脆弱性CVE-2016-7117の対応をした時のメモです

CVE-2016-7117

この辺によると、

Linux Kernel の net/socket.c の __sys_recvmmsg 関数には、解放済みメモリの使用 (Use-after-free) により、任意のコードを実行される脆弱性が存在します。

で、

基本値: 10.0 (危険) [NVD値]
攻撃元区分: ネットワーク
攻撃条件の複雑さ: 低
攻撃前の認証要否: 不要
機密性への影響(C): 全面的
完全性への影響(I): 全面的
可用性への影響(A): 全面的

[参考] CVSS v3 による深刻度
基本値: 9.8 (緊急) [NVD値]
攻撃元区分: ネットワーク
攻撃条件の複雑さ: 低
攻撃に必要な特権レベル: 不要
利用者の関与: 不要
影響の想定範囲: 変更なし
機密性への影響(C): 高
完全性への影響(I): 高
可用性への影響(A): 高

なんかやばそうですね。。

再現・影響チェック

reproducerツール

  • RedhatのBugzillaを見ていたところ、この投稿にreproducerツールがついていました。
  • これを使うことで、脆弱性の再現=チェックができるようです

ツールのコンパイル

  • 下記の手順でコンパイルします
# wget https://bugzilla.redhat.com/attachment.cgi?id=1227131 -O try_recvmmsg.c
# yum install -y glibc-static 
# gcc -Wall -Werror -pthread -static try_recvmmsg.c -o try_recvmmsg
  • 若干warningが出たりしますが、try_recvmmsgという実行ファイルがカレントディレクトリに出力されます

ツールの実行

  • 単発で実行してみます
# ./try_recvmmsg 
++ running!
++ no panic? got hello!.
  • このメッセージが出た時点でだめっぽいです
  • 下記のように大量実行すると、数分後にサーバがハングして謎のメッセージがたくさん出ました
# while true;do ./try_recvmmsg; done

カーネルアップデート

  • アップデートします
# yum update

ツールの再実行

  • 再度実行してみると何もメッセージが出なくなっていました。直ったのでしょう。
# ./try_recvmmsg 
(何も出ない)
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?