⬢ DragonFlyBSD Kernel Audit
DF-5332 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5332",
  "title": "chgetelemstatus() READ ELEMENT STATUS buffers kmalloc'd without M_ZERO; short-but-GOOD transfers disclose stale kernel heap via CHIOGSTATUS copyout",
  "verdict": "reproduced",
  "impact": "leak",
  "confidence": "certain",
  "reproduce": {
    "build": "cd /root/df5332 && sh build.sh",
    "run": "cd /root/df5332 && sh run.sh   (or: ./poc_chres 3 1 4; ./poc_chres 2 0 4)",
    "expected": "marked runs: 0x2x marker bytes in every returned changer_element_status (28 non-zero bytes/run); unmarked runs: natural stale-heap bytes (0xa0cf/0x805a/0xff...); console shows '[EVILCH] RES evil short: ... SENT=8B only'; patched kernel: 0 non-zero bytes everywhere"
  },
  "kernel_refs": [
    "sys/bus/cam/scsi/scsi_ch.c:1089",
    "sys/bus/cam/scsi/scsi_ch.c:1129",
    "sys/bus/cam/scsi/scsi_ch.c:1115-1122",
    "sys/bus/cam/scsi/scsi_ch.c:1156-1188",
    "sys/bus/cam/scsi/scsi_ch.c:984-1051",
    "sys/bus/cam/cam_periph.c:960-969"
  ],
  "artifacts": [
    "README.md", "VERDICT.md", "evilcd3.c", "poc_chres.c", "build.sh",
    "run.sh", "build.log", "run.log", "run.2.log", "fixedA.log",
    "leak_sample.txt", "env.txt", "fix.diff", "manifest.json", "verdict.json"
  ]
}