Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jan 2000 15:08:37 -0700
From:      Brett Glass <brett@lariat.org>
To:        Jared Mauch <jared@puck.nether.net>
Cc:        Jared Mauch <jared@puck.nether.net>, Wes Peters <wes@softweyr.com>, TrouBle <trouble@netquick.net>, security@FreeBSD.ORG
Subject:   Re: stream.c worst-case kernel paths
Message-ID:  <4.2.2.20000121145537.019bf610@localhost>
In-Reply-To: <20000121164856.A4055@puck.nether.net>
References:  <4.2.2.20000121143004.01908960@localhost> <4.2.2.20000121140941.01a68b30@localhost> <200001211415.BAA12772@cairo.anu.edu.au> <20000121.16082400@bastille.netquick.net> <3888C7D2.D82BE362@softweyr.com> <4.2.2.20000121140941.01a68b30@localhost> <20000121162059.Y30675@puck.nether.net> <4.2.2.20000121143004.01908960@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
I can see that in icmp.c, there is a test that prevents us from
sending an ICMP packet to a multicast address. And in tcp_input.c,
the code near the label "dropwithreset" prevents a RST from being
sent in response to a packet whose DESTINATION was a multicast
address. But I don't see anything that stops it from going
out when the SOURCE was a multicast address. So TCP attempts
to send a RST to that address (something that should be
fixed!). Maybe this is one of the reasons why TCP_RESTRICT_RST
seems to help defeat this exploit.

[Side note: It occurs to me that George may not have tried the
-random option in his tests, and therefore might not have
seen this.]

--Brett

At 02:48 PM 1/21/2000 , Jared Mauch wrote:
   
>         Packet comes in, and we look at type first I believe.
>
>         RCV IP PKT -> Determine type enum { tcp udp raw ospf icmp ... }
>
>         pass off to appropriate stack.  udp stack deals with multicast,
>but if you receive traffic to a multicast address, that you haven't sent
>an igmp join to, you should drop the packet without looking at it further
>(Unless you are a multicast router).
>
>         The TCP stack should discard 224.0.0.0/4  when it comes in if
>the src or dst are within that range.
>
>         - Jared
>
>On Fri, Jan 21, 2000 at 02:35:16PM -0700, Brett Glass wrote:
> > That's what I thought. This is really pathological. Why do we allow 
> > ourselves to send a RST to a multicast address, or accept an ACK from 
> > one? Could lower layers of the stack flag the ACK as coming from
> > a multicast address so that we can nuke it before (or as) it hits
> > the TCP layer? I can imagine a whole potential family of exploits
> > involving multicast addresses and TCP.
> > 
> > --Brett
> > 
> > At 02:20 PM 1/21/2000 , Jared Mauch wrote:
> >    
> > >         In the multicast world you only send UDP (or other types), you
> > >do not send tcp packets out, because you can't do a three-way
> > >handshake.
> > >
> > >         - jared
> > >
> > >On Fri, Jan 21, 2000 at 02:10:23PM -0700, Brett Glass wrote:
> > > > At 01:55 PM 1/21/2000 , Wes Peters wrote:
> > > > 
> > > > >Be warned if you're using the exploit program: if you select random
> > > > >addresses, it may (will) pick multicast IP addresses, which may have
> > > > >unintended side affects on your network.  Augh!
> > > > 
> > > > Geeze. Is it even LEGAL to ACK multicast packets?
> > > > 
> > > > --Brett
> > > > 
> > > > 
> > > > 
> > > > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > > > with "unsubscribe freebsd-security" in the body of the message
> > >
> > >-- 
> > >Jared Mauch  | pgp key available via finger from jared@puck.nether.net
> > >clue++;      | http://puck.nether.net/~jared/  My statements are only mine.
> > >END OF LINE  |
>
>-- 
>Jared Mauch  | pgp key available via finger from jared@puck.nether.net
>clue++;      | http://puck.nether.net/~jared/  My statements are only mine.
>END OF LINE  |
>
>
>To Unsubscribe: send mail to majordomo@FreeBSD.org
>with "unsubscribe freebsd-security" in the body of the message



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.2.2.20000121145537.019bf610>