DF-3205 / run_fixed.sh
#!/bin/sh # Fixed-kernel A/B suite (all three fixes in one kernel, line-disjoint # hunks). Baseline numbers in brackets came from the same tests on the # baseline harness kernel (#1); see the per-pack run logs. set -e D=/root/dfrig13 cd $D ifconfig lo0 127.0.0.2 netmask 255.0.0.0 alias 2>/dev/null || true echo "===== FIXED T5: xid determinism (baseline: 0xffffff00+n ascending) =====" usched :1 ./attacker dump -p 7771 -n 6 > fx_dump.log 2>&1 & sleep 1 sysctl -w kern.dfrig13_arg=6 >/dev/null usched :1 sysctl -w kern.dfrig13=5 >/dev/null sysctl -n kern.dfrig13_status wait cat fx_dump.log echo echo "===== FIXED T1: wrong-origin spoof (baseline: ATTACKER payload) =====" usched :1 ./attacker spoofsrc -p 7771 -n 1 > fx_spoof.log 2>&1 & sleep 1 usched :1 sysctl -w kern.dfrig13=1 >/dev/null sysctl -n kern.dfrig13_status wait cat fx_spoof.log echo echo "===== FIXED T4 blind pmap (baseline: port ca fe from blind xid) =====" usched :1 ./attacker pmap -b -n 1 > fx_pmap.log 2>&1 & sleep 1 usched :1 sysctl -w kern.dfrig13=4 >/dev/null sysctl -n kern.dfrig13_status wait cat fx_pmap.log echo echo "===== FIXED T2/T22 short reply (baseline: rpc denied, status=<stale>) =====" DM0=$(dmesg | grep -c "rpc denied, status=" || true) usched :1 ./attacker short -p 7771 -n 6 > fx_short.log 2>&1 & sleep 1 sysctl -w kern.dfrig13_arg=0xc3 >/dev/null usched :1 sysctl -w kern.dfrig13=2 >/dev/null sysctl -w kern.dfrig13_arg=0x5a >/dev/null usched :1 sysctl -w kern.dfrig13=22 >/dev/null sysctl -n kern.dfrig13_status wait DM1=$(dmesg | grep -c "rpc denied, status=" || true) echo "rpc-denied lines before=$DM0 after=$DM1 (baseline grew by >=1 per attempt)" echo echo "===== FIXED primer attribution (baseline: value tracks pattern 18/18) =====" DM2=$(dmesg | grep -c "rpc denied, status=" || true) usched :1 ./attacker short_p -p 7771 -n 3 -x 0x5a5a5a5a > fx_primer.log 2>&1 & sleep 1 sysctl -w kern.dfrig13_arg=0xc3 >/dev/null usched :1 sysctl -w kern.dfrig13=2 >/dev/null wait DM3=$(dmesg | grep -c "rpc denied, status=" || true) echo "rpc-denied lines before=$DM2 after=$DM3 (must NOT grow)" echo echo "===== FIXED T3 pmis leak (baseline: +50 mbufs) =====" MB0=$(netstat -m | head -1) usched :1 ./attacker pmis -p 7771 -n 50 > fx_pmis.log 2>&1 & sleep 1 sysctl -w kern.dfrig13_arg=50 >/dev/null usched :1 sysctl -w kern.dfrig13=3 >/dev/null sysctl -n kern.dfrig13_status wait sleep 2 MB1=$(netstat -m | head -1) echo "mbufs before: $MB0" echo "mbufs after: $MB1" echo echo "===== FIXED T33 honest control (must stay flat) =====" MB2=$(netstat -m | head -1) usched :1 ./attacker good -p 7771 -n 50 > fx_good.log 2>&1 & sleep 1 sysctl -w kern.dfrig13_arg=50 >/dev/null usched :1 sysctl -w kern.dfrig13=33 >/dev/null sysctl -n kern.dfrig13_status wait sleep 2 MB3=$(netstat -m | head -1) echo "mbufs before control: $MB2" echo "mbufs after control: $MB3" echo echo "FIXED-KERNEL SUITE DONE" |