DragonFlyBSD Kernel Audit
DF-0788 / fix_run.log
← back to finding ↓ download raw
=== DF-0788 Fix Validation: Before/After Contrast ===

--- BEFORE: Unpatched #0 kernel (baseline) ---
Kernel: DragonFly 6.5-DEVELOPMENT #0: Thu Jul  2 06:02:54 UTC 2026
ntfs.ko: original (Jun 29), no bounds check on a_dataoff

$ mount_ntfs -o ro /dev/vn0 /mnt/ntfs    (ntfs_0788.img, a_dataoff=0x0F80)
VN_RC=0
MOUNT_RC=0
/dev/vn0 on /mnt/ntfs (ntfs, read-only, local)
>>> mount SUCCEEDS = ntfs_attrtontvattr memcpy completed = OOB READ HAPPENED
>>> (152 bytes past 4096-byte MFT record buffer into adjacent M_TEMP slab heap)
=== guest alive ===
up 28 secs, load averages: 0.18, 0.05, 0.01

--- AFTER: Patched #1 kernel (fix applied) ---
Kernel: DragonFly 6.5-DEVELOPMENT #1: Fri Jul 10 08:23:19 UTC 2026
ntfs.ko: rebuilt with fix.diff (validates a_dataoff+a_datalen <= a_hdr.reclen)

$ mount_ntfs -o ro /dev/vn0 /mnt/ntfs    (same ntfs_0788.img)
mount_ntfs: /dev/vn0: Invalid argument
MOUNT_RC=71
>>> mount FAILS = ntfs_attrtontvattr returned EINVAL = OOB READ PREVENTED
=== guest alive ===
up 2 mins, load averages: 0.08, 0.05, 0.01

--- AFTER: Patched #1 kernel + CLEAN image (regression test) ---
$ mount_ntfs -o ro /dev/vn0 /mnt/ntfs    (ntfs_clean.img, valid offsets)
MOUNT_RC=0
/dev/vn0 on /mnt/ntfs (ntfs, read-only, local)
>>> clean image still mounts = NO REGRESSION on valid images

=== CONCLUSION: fix closes the bug (mount fails cleanly on malformed image, valid images unaffected) ===