security

Total 112
Today 0
profile_image
ino
05-01-11 16:26 0개 2,637회
uselib() 함수에서의 보안 취약성
출처 : 메일링리스트



안녕하십니까? 오늘과내일의 홍석범입니다.



최근 들어 리눅스 커널에 몇 가지 보안 버그가 있었지만

대부분 특수한 환경에서의 취약성이었습니다.



그러나 최근 공개된 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

$



다른 정보/의견 있으시면 공유 부탁드립니다.







감사합니다.



* ino님에 의해서 게시물 이동되었습니다 (2005-01-12 21:08)

댓글목록

등록된 댓글이 없습니다.