[[diary/Kojima]]
・vmsplice exploit
デフォルトのカーネルを使っているから当然と言えば当然だけど,
例の vmsplice を使った exploit はちゃんと機能しますね.
kojima@xeon[~]% uname -r
2.6.22.9-plamoSMP
kojima@xeon[~]% ./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: 0xb7d97000 .. 0xb7dc9000
[+] root
root@xeon:~# whoami
root
2.6.23.16 では修正されたそうだけど,対応箇所はこのあたりで,vmsplice を
呼び出す時に条件チェックを厳しくしたみたい.
@@ -1442,6 +1445,11 @@ static long vmsplice_to_user(struct file *file, const struct iovec _
_user *iov,
break;
}
+ if (unlikely(!access_ok(VERIFY_WRITE, base, len))) {
+ error = -EFAULT;
+ break;
+ }
+
この手の問題って,ごく限定された状況でしか発動しないと思うけど,よく見
つけるものだとある意味感心.
#comment
・xrandr
X11R7 系で採用された xrandr についてのメモ
- xrandr -q で,現在の設定と利用可能なモードの表示.
kojima@athlon64[/mnt/Srcs/L/Linux]% xrandr -q
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 1600 x 1200
VGA1 connected 1600x1200+0+0 367mm x 275mm
1600x1200 60.0*+ 59.9
1280x1024 75.0 59.9
1152x864 74.8
1024x768 75.1 60.0
800x600 75.0 60.3
640x480 75.0 60.0
VGA2 unknown connection
1024x768 60.0
800x600 60.3
640x480 59.9
- xrandr -s N 等で解像度の変更
Nは現在利用可能なモードの順番で,上記の例では N=0(xrnadr -s 0)で 1600x1200,
N=2(xrandr -s 2)で 1152x864 なモードに変更できる
- xrandr --output VGA2 --off で副画面の停止
上記例(MGA G400)のように,2画面出力が可能な VGA カードの場合は,デフォ
ルトでは VGA2 の出力は VGA1 の出力にオーバーレイされるみたいで,VGA2 を
オフしないと,画面に左上端に VGA2 の出力がマージされる(xscreensaver が
画面左上の 1024x768 な領域しか表示されない,等).これを止めるには --output で出力先を
指定して --off で出力を停止すればいい.このコマンド
は ~/.xinitrc 等に指定しておけばいいみたい.
#comment