English
◀◁ 뒤로
취약점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)