DF-0477 / run_fixed.sh
#!/bin/sh # DF-0477 driver - PATCHED kernel/module. Output -> /root/df0477_fixed.out # Loads the (patched) ipfw3 + submodules, runs the overflow PoC. # With the fix, bcopy is bounded by sopt_valsize -> returned_len <= payload. exec >/root/df0477_fixed.out 2>&1 set -x date echo "kern.version: $(sysctl -n kern.version | head -1)" kldload /boot/kernel/ipfw3.ko ; echo "core rc=$?" kldload /boot/kernel/ipfw3_basic.ko ; echo "basic rc=$?" kldload /boot/kernel/ipfw3_layer2.ko; echo "layer2 rc=$?" kldload /boot/kernel/ipfw3_layer4.ko; echo "layer4 rc=$?" kldload /boot/kernel/ipfw3_nat.ko ; echo "nat rc=$?" kldstat | grep -i ipfw cd /root/poc/DF-0477 echo "=== probe large buffer (see module_str) ===" ./ipfw3_get_modules_overflow 1 256 echo "=== overflow attempt: bufsize=5 (expect returned_len<=1 => NO overflow) ===" ./ipfw3_get_modules_overflow 50 5 echo "POC_DONE rc=$?" date sync |