| 취약점ID |
16050 |
| 위험도 |
40 |
| 포트 |
21 |
| 프로토콜 |
TCP |
| 분류 |
FTP |
| 상세설명 |
해당 BFTD 데몬은 긴 USER 명령을 통한 서비스 거부 공격에 취약하다. 이 중 BFTPD 1.0.11 버전에는 bftpd-1.0.11/commands.c 파일에 있는 command_user() 함수 상에서 올바른 버퍼 경계 체크(boundary checking)가 이루어지지 않는 버그가 존재하고 이로 인하여 버퍼 오버플로우(buffer overflow)가 발생할 수 있다. 이 버퍼 오버플로우 취약점은 다음과 같이 USER 명령어 다음에 35 이상의 문자로 구성된 문자열을 덧붙여 서버에 전달할 때 발생한다.
USER AAAA…['A'*35]...AAAAA
이와 같은 행위는 세그멘테이션 폴트(segmentation fault) 유발시키고 BFTPD 데몬을 크래쉬(crash)시킬 수 있다. BFTPD 데몬은 권한 상승(elevation of privileges)를 방지하기 위해, 쉘 코드(shell code)와 같은 프린트 불가능한 문자들을 필터링하도록 구현되어 있기 때문에 원격지 공격자들이 이 취약점을 이용해 서버 상에서 임의의 명령을 수행하기는 쉽지 않다. 하지만, 이와 같이 유효하지 않은 입력을 통해서 세션 자체를 크래쉬(crash) 시킬 수는 있다.
* 참고 사이트: http://online.securityfocus.com/bid/1858 http://www.iss.net/security_center/static/5426.php
* 영향 받는 플랫폼들: BFTPD 1.0.11 version |
| 해결책 |
http://bftpd.sourceforge.net/ 를 참조하여 BFTPD 1.0.12 버전이나 가장 최신 버전으로 업그레이드 해야 한다.
임시 조치방법으로, bftpd-1.0.11/commands.c 파일에서 109 줄을 다음과 같이 변경한 후 재 컴파일하여 설치한다. alias = (char *) config_getoption(strcat(name, username)); => alias = (char *) config_getoption(strncat(name, username, USERLEN)); |
| 관련 URL |
CVE-2000-0943 (CVE) |
| 관련 URL |
(SecurityFocus) |
| 관련 URL |
(ISS) |
|