⬢ DragonFlyBSD Kernel Audit
DF-2234 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-2234",
  "title": "iconv_sysctl_cslist stack overflow via over-long charset names",
  "verdict": "reproduced",
  "impact": "panic",
  "privesc_candidate": false,
  "kernel_refs": [
    "sys/libiconv/iconv.c:368",
    "sys/libiconv/iconv.c:369",
    "sys/libiconv/iconv.c:179",
    "sys/libiconv/iconv.c:382",
    "sys/sys/iconv.h:64",
    "sys/kern/kern_sysctl.c:1321",
    "sys/kern/kern_sysctl.c:1447"
  ],
  "reproduce": {
    "build": "sh build.sh (guest, root): longcs.ko + csread + addtest (userland tools copied to /home/maxx)",
    "run": "sh run.sh: kldload libiconv; addtest 30/31; su maxx csread (control); kldload longcs.ko; su maxx csread (trigger)",
    "expected": "control read returns clean 240-byte listing; after longcs.ko the unprivileged read panics: Fatal trap 9, frame pointer = 0x10:0x4242424242424242, Stopped at iconv_sysctl_cslist+0xf7: ret"
  },
  "artifacts": [
    "README.md", "VERDICT.md", "Makefile", "longcs.c", "csread.c", "addtest.c",
    "build.sh", "run.sh", "build.log", "run.log",
    "panic.txt", "env.txt",
    "fix.diff",
    "manifest.json", "verdict.json"
  ]
}