⬢ DragonFlyBSD Kernel Audit
DF-5126 / run.fixed.log
← back to finding ↓ download raw
# DF-5125/5126 FIX VALIDATION — fix.diff applied to /usr/src, drm.ko rebuilt,
# harness rebuilt against fixed headers, identical PoC (ssh capture)
$ kldload ./drm-fixed.ko && kldload ./rcu_race.ko
$ sleep 50
$ sysctl rcu_race.stageA_runs rcu_race.stageA_uaf rcu_race.stageB_runs rcu_race.stageB_uaf rcu_race.poison_reads rcu_race.canary
rcu_race.stageA_runs: 5
rcu_race.stageA_uaf: 0
rcu_race.stageB_runs: 3
rcu_race.stageB_uaf: 0
rcu_race.poison_reads: 0
rcu_race.canary: 0
$ dmesg | grep -E "rcu_race|expand RCU" | tail -8
rcu_race: starting on cpu 0 (hz=100) DF-5125 stage A x5
rcu_race: DF-5125 stage A done: runs=5 uaf_hits=0 poison_reads=0 canary=0
rcu_race: DF-5126 stage B x3 (reader blocks 2s inside CS)
drm: expand RCU cpu 0 to 16
rcu_race: DF-5126 stage B done: runs=3 uaf_hits=0 poison_reads=0 canary=0
rcu_race: initial run complete ...

# adversarial re-check on the FIXED build: rip_panic=1 + more=5 + moreb=3
$ sysctl rcu_race.rip_panic=1; sysctl rcu_race.more=5; sysctl rcu_race.moreb=3
$ sleep 45
$ sysctl rcu_race.stageA_runs rcu_race.stageA_uaf rcu_race.stageB_runs rcu_race.stageB_uaf rcu_race.canary; uptime
rcu_race.stageA_runs: 10
rcu_race.stageA_uaf: 0
rcu_race.stageB_runs: 6
rcu_race.stageB_uaf: 0
rcu_race.canary: 0
 3:28AM  up 5 mins, 0 users, load averages: 0.05, 0.04, 0.01     # guest still up, no trap