⬢ DragonFlyBSD Kernel Audit
DF-5180 / manifest.json
← back to finding ↓ download raw
{
  "finding_id": "DF-5180",
  "title": "acpi_PkgStr() heap OOB read past non-NUL-terminated ACPI_TYPE_BUFFER via strlcpy's unbounded source scan",
  "file": "sys/dev/acpica/acpi_package.c",
  "verdict": "untested",
  "impact": "dos",
  "confidence": "certain",
  "reproduce": {
    "build": "none (source-confirmed; ACPI-firmware-gated) — see ./build.sh",
    "run": "none (crafted DSDT documented in trigger.dsl) — see ./run.sh",
    "expected": "strlcpy truncation-scan reads ptr[Buffer.Length] and beyond for a zero-free Buffer element (e.g. _BIF model/serial via acpi_cmbat.c:374-380); usually stops on zero padding inside the same allocation, worst case reads past the kmalloc'd result block and faults -> kernel panic; no data disclosed"
  },
  "kernel_refs": [
    "sys/dev/acpica/acpi_package.c:86",
    "sys/dev/acpica/acpi_package.c:95",
    "sys/dev/acpica/acpi_package.c:98",
    "sys/libkern/strlcpy.c:56",
    "sys/contrib/dev/acpica/source/components/utilities/utcopy.c:288",
    "sys/contrib/dev/acpica/source/components/utilities/utobject.c:512",
    "sys/contrib/dev/acpica/source/components/utilities/utalloc.c:527",
    "sys/dev/acpica/acpi_cmbat.c:374"
  ],
  "artifacts": [
    "README.md",
    "VERDICT.md",
    "trigger.dsl",
    "fix.diff",
    "build.sh",
    "run.sh",
    "manifest.json",
    "verdict.json"
  ]
}