|
커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
|
|
|
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
pront40
가입: 2004년 8월 18일 올린 글: 2 위치: VVT
|
올려짐: 2005.1.17 월, 9:47 am 주제: 모든 리눅스 커널에 심각한 보안 결함 발견 |
|
|
안녕하세요...
커널 보안결함입니다. 참고들 하시기 바랍니다.
원문출처 : certcc-kr 메일링리스크 2005. 01. 11.
-----------------------------------------------------------------------------
안녕하십니까? 오늘과내일의 홍석범입니다.
최근 들어 리눅스 커널에 몇 가지 보안 버그가 있었지만
대부분 특수한 환경에서의 취약성이었습니다.
그러나 최근 공개된 uselib() 함수에서의 보안 취약성을 통해서
내부의 일반 유저가 root 권한을 획득할 수 있는 취약성이 확인되었습니다.
본 취약성에 대한 정보는 아래와 같습니다.
* 취약한 커널버전
2.2.x : 모든 버전
2.4.x : 2.4.28을 포함한 2.4.29-pre3 까지, 2.4.28 이하 모든 버전
2.6.x : 2.6.10을 포함한 2.6.10 이하 모든 버전
* 취약하지 않은 커널 버전
2.4.x : 2.4.29-rc1
--> 2.4.28 설치후 2.4.29-rc1 으로 패치하여야 함
또는 2.4.28 설치후 http://maphia.flowsecurity.org/patch/uselib-2.4.28.patch 패치
2.6.x : 2.6.10-ac8
2.6.10 설치후 2.6.10-ac8 로 패치하여야 함
* 공격방법
Local exploit이며 remote에서의 공격은 불가합니다.
그러나 최근 php injection등을 통해 일반 권한을 쉽게 획득할 수 있으므로
조처를 취하시는 것이 좋습니다.
아래는 exploit 를 실행하여 성공했을때의 결과입니다.
$./exploit
[+] SLAB cleanup
child 1 VMAs 65527
child 2 VMAs 65527
child 3 VMAs 65527
...
child 18 VMAs 63322
[+] moved stack bfffb000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xdf800000 - 0xfedbb000
Wait... \
[+] race won maps=49205
expanded VMA (0xbfffc000-0xffffe000)
[!] try to exploit 0xe2d25000
[+] gate modified ( 0xffec903c 0x0804ec00 )
[+] exploited, uid=0
sh-2.05b# id
uid=0(root) gid=0(root)
아래는 2.4.29-rc1으로 패치한 후의 실행 결과입니다.
$./exploit
[-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied)
$
일부에서는 /dev/shm을 커널에서 삭제하거나 umount를 하면 된다고 하지만
옵션에서 /tmp 등으로 변경할 수 있기 때문에 의미가 없습니다.
만약 패치가 어려운 경우에는 임시로 다음과 같이 해도 되는 것 같습니다.
(공식적으로 확인된 내용은 아니며 단지 저의 테스트 결과일 뿐입니다.)
# chmod 700 /proc/
즉, /proc 디렉토리를 700 으로 설정하도록 하는 것으로 이 설정을 통해서
일반 유저가 ps나 w 를 실행할 수 없는 것 외에 특별히 문제가 되는 것은 없습니다.
이는 공격코드내에서 /proc/slabinfo 정보를 읽어야 하기 때문입니다.
$ ./exploit
[+] SLAB cleanup
child 1 VMAs 65527
child 2 VMAs 65527
child 3 VMAs 65527
child 4 VMAs 65043
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xe0000000 - 0xfffc1000
Wait... \
[-] FAILED: uselib (Cannot allocate memory)
Killed
$
$ ./exploit
[+] SLAB cleanup
[-] FAILED: get_slab_objs: /proc/slabinfo not readable? (Permission denied)
Killed
$
다른 정보/의견 있으시면 공유 부탁드립니다.
감사합니다. |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 있습니다 답글을 올릴 수 있습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB © 2001, 2005 phpBB Group
|