Entered as bug kernel/4604.  A colleague suggested I post here, as well.

Anyway, details are in the bug, but the gist is that bridging Intel cards and using scrub rules in pf results in a kernel panic. It's very easy to reproduce.
I'm currently using a VIA single board computer (Commell's LE-564), but
I have reproduced this (since 3.6) on an HP Kayak PC, and a Dell Precision.

Ruleset that causes panic (commenting 2 scrub rules eliminates panic - I
don't know if scrub, in general, causes the panic, or if it's one of the scrub
options that I am passing):

#### Interface aliases
# Interface aliases for ease of administration.

ext_if = "fxp0"      # Untrusted (to LAN)
int_if = "fxp1"      # Trusted (to switch)

#### Traffic Normalization
# Prevent fragmentation attacks
scrub in on $ext_if all fragment reassemble no-df
scrub out on $ext_if all fragment reassemble random-id no-df

### Pass traffic on the loopback interface in either direction
pass quick on lo0 all

#### Internal Bridge interface rules
# Filter on external interface - in bridge mode,
# we only filter on one interface.
pass in quick on $int_if all
pass out quick on $int_if all

### Don't filter anything and see if we still panic
pass in quick on $ext_if all
pass out quick on $ext_if all

Crash:

panic: pool_get(mclpl): free list modified: magic=c6830e9e; page 0xd38cc000; it
em addr 0xd38cc800
Stopped at      Debugger+0x4:   leave
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> trace
Debugger(0,0,0,d38cc800,d05d2760) at Debugger+0x4
panic(d04f6bc0,d04f8b89,c6830e9e,d38cc000,d38cc800) at panic+0x63
pool_get(d05d2760,0,da369b00,1,d06f1dfc) at pool_get+0x315
fxp_start(d0958040,d06f1dfc,e,d09e3c00) at fxp_start+0x2ac
bridge_ifenqueue(d09ec000,d0958040,da370300,d0958040,da370300) at bridge_ifenqu
eue+0xa2
bridgeintr_frame(d09ec000,da370300,0,d06f0000) at bridgeintr_frame+0x270
bridgeintr(58,10,10,10,d06f0000) at bridgeintr+0x6a
Bad frame pointer: 0xd06f1e44

Reply via email to