| 취약점ID |
16047 |
| 위험도 |
40 |
| 포트 |
21 |
| 프로토콜 |
TCP |
| 분류 |
FTP |
| 상세설명 |
해당 BFTPD 데몬은 NLST 명령어에 Format String 취약점을 가지고 있다. Max-Wilhelm Bruker's FTP 서버인 BFTPD 데몬은 Linux, BSD/OS, FreeBSD, DG-UN, Tru64 상에서 inetd 데몬에 종속되어 또는 독립적으로 동작할 수 있는 FTP 서버 프로그램이다. 그 중 BFTPD 1.0.12 버전은 "distlir.c" 파일에 존재하는 "sendstrf" 와 "dirlist" 함수 구현에 있어 몇 가지 버그를 가지고 있다. 버그들 중 특히, 이 Format String 취약점은 "sendstrf" 함수가 파일명이 format string %p%p%p%p 를 포함하는 파일을 리스팅(listing) 하기위해 요청된 NLST 명령어에 의해서 호출될 경우, 발생하게 된다. 만약, 파일 "%p%p%p%p" 이 존재하고 NLST 명령을 전달할 경우, 다음과 같은 결과가 반환된다.
#ls %p%p%p%p ftp>nlist 200 PORT … OK 150 Data connection established. ….0xbffdde140x499e8100x424000bb….... 226 Directory list has been submitted ftp>
이것은 vsprintf 함수에 올바르게 format string을 전달할 수 없게 되며 vsprintf 의 버퍼를 오버플로우(overflow)시킬 수 있다. 만약, 원격지 공격자가 FTP 서버 상의 임의의 디렉토리에 대해서 쓰기 액세스(access) 권한을 갖는다면, 이 취약점을 이용하여 시스템 루트 권한을 획득할 수 있으며 임의의 코드 실행도 가능하다.
* 참고 사이트: http://www.securiteam.com/unixfocus/6N00E0A0KW.html
* 영향을 미치는 플랫폼: BSD 모든 버전 DG/UX 모든 버전 FreeBSD 모든 버전 Linux 모든 버전 Solaris 모든 버전 Tru64 UNIX 모든 버전 bftpd 1.0.12 |
| 해결책 |
BFTPD 웹 사이트 http://bftpd.sourceforge.net/ 를 참조하여 BFTPD1.0.13 이상의 버전으로 업그레이드 해야 한다.
임시 조치방법으로, bftpd-1.0.11/dirlist.c 파일 중 62줄을 다음과 같이 변경하고 재 컴파일하여 설치한다: sendstrf(s, entry->d_name) => sendstrf(s, "%s", entry->d_name) |
| 관련 URL |
(CVE) |
| 관련 URL |
(SecurityFocus) |
| 관련 URL |
(ISS) |
|