Bugtraq mailing list archives

Urgent !! Serious Linux Security Bug....


From: usa () win95 com (Jake the Prince)
Date: Sat, 19 Oct 1996 18:43:39 +0200


This is a multi-part message in MIME format.

--------------BFF22A370E3
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

        Today we saw an email from Linus Torvalds advising of a problem
with Linux and ping.  Basically you can reboot a linux box remotely if
some scenario's are right.  From what we can tell and this has all been
verified is: If anyone in the world with a Windows 95 machine can ping
your
Linux box they can potentially reboot that machine.. Hence a serious
denial of service OR loss of data.

Scenario:

Win95 user types 'ping -l 65510 host.running.linux'.

Result:

That machine reboots OR freezes.

On the Linux machine, you need to be running kernel version 2.0.7(It's
the
lowest we run) up to version 2.0.20(The highest we're running).

With ping you can use value 65508-65527.

We have extensively tested both of these.

I'm sure there are thousands of Linux systems that could be affected.

There IS a BETA patch out and it DOES work.. If you don't have that
patch
code as of yet, it's attached.

Cyaz

Jake The Prince

PS..... Thanks to whoever found this serious bug...
-

       /-----------------------------------------------------------\
       | I have just one     \|/ ____ \|/                          |
       | thing to say...     ~@-/ oO \-@~  Neener, neener, neener. |
       |                     /_( \__/ )_\                          |
       |                        \__U_/                             |
       |                                                           |
       |      -*- Opp -*- (usa () win95 com) -*- USA_Direkt -*-       |
       \-----------------------------------------------------------/

--------------BFF22A370E3
Content-Type: text/plain; charset=us-ascii; name="ping.bug"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="ping.bug"

--- ip_fragment.c.old   Mon Sep 16 22:14:52 1996
+++ ip_fragment.c       Sat Oct 19 01:04:47 1996
@@ -366,7 +366,7 @@
                {
                        NETDEBUG(printk("Invalid fragment list: Fragment over size.\n"));
                        ip_free(qp);
-                       frag_kfree_skb(skb,FREE_WRITE);
+                       kfree_skb(skb,FREE_WRITE);
                        ip_statistics.IpReasmFails++;
                        return NULL;
                }
@@ -466,6 +466,18 @@
                        return NULL;
                }
        }
+
+       /*
+        *      Attempt to construct an oversize packet.
+        */
+
+       if(ntohs(iph->tot_len)+(int)offset>65535)
+       {
+               skb->sk = NULL;
+               frag_kfree_skb(skb, FREE_READ);
+               ip_statistics.IpReasmFails++;
+               return NULL;
+       }

        /*
         *      Determine the position of this fragment.


--

--------------BFF22A370E3--



Current thread: