⬢ DragonFlyBSD Kernel Audit
DF-4758 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-4758",
  "verdict": "reproduced",
  "impact": "dos",
  "confidence": "certain",
  "reproduce": {
    "build": "cc -O -o /tmp/df4758_swapon /tmp/df4758_swapon.c",
    "run": "kldload vinum; dd if=label.bin of=/dev/md0 bs=512 seek=1 conv=notrunc; vinum create -f /tmp/c1 (drive d1 device /dev/md0s0a); vinum create -f /tmp/c2 (volume v0, plex p0 concat, sd s0..s5 drive d1 len 1m); sh run2.sh",
    "expected": "vulnerable: swapon /dev/vinum/sd/s0 succeeds and swapinfo shows 12288 512-blocks (the VOLUME's size) for a 1 MB subdisk; s4/s5 index VOL[4]/VOL[5] OOB (heap-dependent result). patched: all sd swapons ENXIO, /dev/vinum/vol/v0 OK with correct 12288 blocks."
  },
  "kernel_refs": [
    "sys/dev/raid/vinum/vinum.c:564",
    "sys/dev/raid/vinum/vinum.c:58-70",
    "sys/dev/raid/vinum/vinumutil.c:239-243",
    "sys/dev/raid/vinum/vinumvar.h:124-132",
    "sys/vm/vm_swap.c:296-348"
  ],
  "artifacts": [
    "df4758_swapon.c", "run.sh", "run2.sh",
    "df4758_run.log", "df4758_run2.log",
    "build.log", "fix.diff", "fix_run.log", "env.txt",
    "README.md", "VERDICT.md", "verdict.json", "manifest.json"
  ]
}