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;
+               }
+
 

この手の問題って,ごく限定された状況でしか発動しないと思うけど,よく見 つけるものだとある意味感心.


・xrandr

X11R7 系で採用された xrandr についてのメモ

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  

Nは現在利用可能なモードの順番で,上記の例では N=0(xrnadr -s 0)で 1600x1200, N=2(xrandr -s 2)で 1152x864 なモードに変更できる

上記例(MGA G400)のように,2画面出力が可能な VGA カードの場合は,デフォ ルトでは VGA2 の出力は VGA1 の出力にオーバーレイされるみたいで,VGA2 を オフしないと,画面に左上端に VGA2 の出力がマージされる(xscreensaver が 画面左上の 1024x768 な領域しか表示されない,等).これを止めるには --output で出力先を 指定して --off で出力を停止すればいい.このコマンド は ~/.xinitrc 等に指定しておけばいいみたい.



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:41