DF-5336 / manifest.json
{ "finding_id": "DF-5336", "verdict": "reproduced", "impact": "leak", "summary": "db_disasm Grp7 mod==3 dispatch OOB-reads a const char* past the 2/4/5/7-entry db_Grp7_11_* sub-tables via the unbounded rm field (regmodrm & 0x7) at sys/cpu/x86_64/misc/db_disasm.c:1275; no REX prefix needed; stolen adjacent-.rodata pointer printed via db_printf %s at :1303", "reproduce": { "build": "cd /root/df5336 && env SYSDIR=/usr/src/sys make", "run": "kldload ./df5336_oob.ko; sleep 1; kldunload df5336_oob", "expected": "stock kernel: 5 CTRL vectors print vmxoff/monitor/xtest/swapgs/rdtscp; 6 OOB vectors print adjacent-.rodata content: (null), (null), empty, (null), xgetbv (from db_Grp7_11_010[0] — wrong table), xend (db_Grp7_11_010[5]); identical across 3 runs. Patched kernel: OOB vectors all print empty." }, "kernel_refs": [ "sys/cpu/x86_64/misc/db_disasm.c:1275", "sys/cpu/x86_64/misc/db_disasm.c:174", "sys/cpu/x86_64/misc/db_disasm.c:182", "sys/cpu/x86_64/misc/db_disasm.c:189", "sys/cpu/x86_64/misc/db_disasm.c:199", "sys/cpu/x86_64/misc/db_disasm.c:1303", "sys/ddb/db_examine.c:178", "sys/ddb/db_examine.c:259" ], "fix_validated": true, "artifacts": [ "df5336_oob.c", "Makefile", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "run.3.log", "run.patched.log", "fix.diff", "fix_build.log", "env.txt", "README.md", "VERDICT.md", "manifest.json", "verdict.json" ] } |