Tcpdump Protocol Four and Zero Header Length Vulnerability
BID:313
Info
Tcpdump Protocol Four and Zero Header Length Vulnerability
| Bugtraq ID: | 313 |
| Class: | Unknown |
| CVE: |
CVE-1999-1024 |
| Remote: | Yes |
| Local: | No |
| Published: | Jun 16 1999 12:00AM |
| Updated: | Jul 11 2009 12:16AM |
| Credit: | This vulnerability was published in the BUGTRAQ mailing lists by badi <[email protected]>. |
| Vulnerable: |
LBL tcpdump 3.4 |
| Not Vulnerable: | |
Discussion
Tcpdump Protocol Four and Zero Header Length Vulnerability
A vulnerability in tcpdump causes it to enter an infinite loop within the procedure ip_print() from the file print_ip.c when it receives a packet with IP protocol number four and a zero header length and it tries to print it. This may allow remote malicious users to evade network monitoring.
A vulnerability in tcpdump causes it to enter an infinite loop within the procedure ip_print() from the file print_ip.c when it receives a packet with IP protocol number four and a zero header length and it tries to print it. This may allow remote malicious users to evade network monitoring.
Exploit / POC
Tcpdump Protocol Four and Zero Header Length Vulnerability
x
x
Solution / Fix
Tcpdump Protocol Four and Zero Header Length Vulnerability
Solution:
Apply this patch:
diff -r -p print-ip.orig.c print-ip.c
*** print-ip.orig.c Thu Jun 17 11:24:17 1999
--- print-ip.c Thu Jun 17 14:07:50 1999
*************** ip_print(register const u_char *bp, regi
*** 374,379 ****
--- 374,384 ----
(void)printf("truncated-ip %d", length);
return;
}
+
+ if (ip->ip_hl == 0) {
+ (void)printf("bad ip packet - header length = 0\n");
+ return;
+ }
hlen = ip->ip_hl * 4;
len = ntohs(ip->ip_len);
Solution:
Apply this patch:
diff -r -p print-ip.orig.c print-ip.c
*** print-ip.orig.c Thu Jun 17 11:24:17 1999
--- print-ip.c Thu Jun 17 14:07:50 1999
*************** ip_print(register const u_char *bp, regi
*** 374,379 ****
--- 374,384 ----
(void)printf("truncated-ip %d", length);
return;
}
+
+ if (ip->ip_hl == 0) {
+ (void)printf("bad ip packet - header length = 0\n");
+ return;
+ }
hlen = ip->ip_hl * 4;
len = ntohs(ip->ip_len);
References
Tcpdump Protocol Four and Zero Header Length Vulnerability
References:
References: