[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Vulnerability: OpenBSD 3.5 Kernel Panic.



Hi, I have posted this vulnerability note to CERT and gotten no
response. It is remotely exploitable, but since it requires commands

to be executed as root on the gateway machine, it is unlikely to cause

any unplanned disruption.

OpenBSD was contacted, and they provided a patch within 12 hours.

-=-=-=-
Description
-=-=-=-
An OpenBSD 3.5 machine, configured as a gateway (2 NICs --Net A, 
and Net B), once bridging has been activated, and the link2 option 
given (for IPSec processing), is vulnerable to a single ICMP echo 
request sent from a machine on interface A's network sent to a machine

on interface B's network, causing it to crash. No core file is 
generated. If the DDB_PANIC option is set, the machine reboots upon 
receipt of the ICMP echo request.
-=-=-=-

Commands (assuming fxp0 and fxp1 are the two interfaces):

# ifconfig bridge0 create
# brconfig bridge0 add fxp0 add fxp1 up 
# brconfig bridge0 link2

the machine is now vulnerable to a single ping from a machine on NetA

destined to a machine in NetB.

The problem was observed on a test network, and reproduced on a VMWare

network. Screen-shots of the crash on the VMWare setup are available.


OpenBSD's patch follows.

'='='=' Begin Patch ='='='= Remove this line '='='='

Index: sys/net/if_bridge.c 
===================================================================
RCS file: /cvs/src/sys/net/if_bridge.c,v
retrieving revision 1.136
diff -u -r1.136 if_bridge.c
--- sys/net/if_bridge.c 21 Jun 2004 23:50:36 -0000      1.136
+++ sys/net/if_bridge.c 18 Aug 2004 09:29:04 -0000
@@ -2275,9 +2275,9 @@
                        splx(s);
                        return (1);
                } else {
+                       splx(s);
  skiplookup:
                        /* XXX do an input policy lookup */
-                       splx(s);
                        return (0);
                }
        } else { /* Outgoing from the bridge. */


'='='=' End Patch ='='='= Remove this line '='='='

cheers,

Vafa Izadinia.