⬢ DragonFlyBSD Kernel Audit
DF-5019 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5019",
  "file": "sys/dev/misc/tbridge/tbridge.c",
  "title": "TBRIDGE_GETRESULT without prior LOADTEST: NULL tbridge_testcase -> KKASSERT kernel panic on INVARIANTS kernels",
  "verdict": "reproduced",
  "impact": "panic",
  "confidence": "certain",
  "reproduce": {
    "build": "sh build.sh (guest, as root); for the panic variant: copy X86_64_GENERIC -> DF5019 with 'device tbridge' and run 'cd /usr/src && make -j6 nativekernel KERNCONF=DF5019 && make installkernel KERNCONF=DF5019'",
    "run": "sh run.sh (kldload mytcase.ko; ./poc)",
    "expected": "baseline (in-kernel tbridge, INVARIANTS): panic: assertion \"tbridge_testcase != NULL\" failed in tbridge_test_done at .../tbridge.c:196, guest in DDB; kmod variant: ioctl returns -1 errno 45 (ENOTSUP), no panic; patched kernel: -1 errno 22 (EINVAL), no panic"
  },
  "kernel_refs": [
    "sys/dev/misc/tbridge/tbridge.c:196",
    "sys/dev/misc/tbridge/tbridge.c:265",
    "sys/config/X86_64_GENERIC:56",
    "sys/conf/files:2122"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "poc.c", "mytcase.c", "build.sh", "run.sh",
    "build.log", "build.fix.log", "run.log", "run.kmod.log", "panic.txt",
    "env.txt", "fix.diff", "verdict.json", "manifest.json"
  ]
}