DF-4758 / manifest.json
{ "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" ] } |