先日、CVE-2016-5195のexploit codeでの検証記事を記載しました。
この時は簡単にroot奪取ができました。
こちらにRedHatでの応急処置が記載されていました。
Bug 1384344 – (CVE-2016-5195) CVE-2016-5195 kernel: mm: privilege escalation via MAP_PRIVATE COW breakage
https://bugzilla.redhat.com/show_bug.cgi?id=1384344
またRedHatのサイトに脆弱性チェックスクリプトがあります。
Kernel Local Privilege Escalation – CVE-2016-5195
https://access.redhat.com/security/vulnerabilities/2706661
【検証環境】
・Red Hat Enterprise Linux Server release 6.8 (Santiago)
・kernel: 2.6.32-642.el6.x86_64
- 脆弱性チェック
- 応急処置に必要なプログラム
- dirtycow.stp作成
- バックグラウンドで起動
- 脆弱性チェック
脆弱性があります。
1 2 3 4 5 6 7 8 |
# curl -O https://access.redhat.com/sites/default/files/rh-cve-2016-5195_2.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 16478 100 16478 0 0 3697 0 0:00:04 0:00:04 --:--:-- 4181 # bash rh-cve-2016-5195_2.sh Your kernel is 2.6.32-642.el6.x86_64 which IS vulnerable. Red Hat recommends that you update your kernel. Alternatively, you can apply partial mitigation described at https://access.redhat.com/security/vulnerabilities/2706661 . |
応急処置に必要な下記のプログラムをインストールします。
kernel-devel-$(uname -r)
kernel-debuginfo-$(uname -r)
systemtap
今回の検証環境では下記をインストールします。但しkernel-debuginfo-$(uname -r)はインストール用DVDにも無いのでRHNからrpmでダウンロードしました。
※RedHatのサイトより
RHEL 6 の debuginfo パッケージは、Red Hat 社のパブリックな FTP サイトからは現在提供していません。Red Hat Network (RHN) クラシックおよび Red Hat Satellite からダウンロードしてください。
kernel-devel-2.6.32-642.el6.x86_64
kernel-debuginfo-2.6.32-642.el6.x86_64
systemtap-2.9-4.el6.x86_64
証明書エラーが表示されたら強制インストールして下さい。
サブスクリプション登録していないと証明書エラーになると思います。
1 2 3 4 |
# rpm -ivh --force --nodeps kernel-debuginfo-2.6.32-642.el6.x86_64.rpm warning: kernel-debuginfo-2.6.32-642.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID Preparing... ########################################### [100%] 1:kernel-debuginfo ########################################### [100%] |
ファイル名は何でもいいのですが、拡張子を”.stp”にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# vi dirtycow.spt # cat dirtycow.spt probe kernel.function("mem_write").call ? { $count = 0 } probe syscall.ptrace { // includes compat ptrace as well $request = 0xfff } probe begin { printk(0, "CVE-2016-5195 mitigation loaded") } probe end { printk(0, "CVE-2016-5195 mitigation unloaded") } |
起動中のみ応急処置が有効になります。FGで起動して別コンソールで作業をしてもいいです。
1 2 3 |
# stap -g dirtycow.spt & [1] 57958 # |
再度チェックしてみます。
カーネルは脆弱性があるけど応急処置が施されています。一般的な攻撃からは保護できますが完全ではないので、なるべく早くアップデートして下さいってところでしょうか。
1 2 3 4 5 6 |
# bash rh-cve-2016-5195_2.sh Your kernel is 2.6.32-642.el6.x86_64 which IS vulnerable. You have a partial mitigation applied. This mitigation protects against most common attack vectors which are already exploited in the wild, but does not protect against all possible attack vectors. Red Hat recommends that you update your kernel as soon as possible. |
前回同様exploit codeのc0w.cで検証しましたがroot奪取はできませんでした。
10/25現在まだアップデートは提供されていません。
【10/26/2016 追記】
RHEL 7/CentOS 7の修正カーネルが提供されました。
kernel-3.10.0-327.36.3.el7
https://access.redhat.com/security/cve/cve-2016-5195
RHEL/CentOS 5,6はまだのようです。
【10/27/2016 追記】
RHEL 6/CentOS 6の修正カーネルが提供されました。
kernel-2.6.32-642.6.2.el6
【10/28/2016 追記】
RHEL 5/CentOS 5の修正カーネルが提供されました。
kernel-2.6.18-416