DF-5180 / manifest.json
{ "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" ] } |