DF-4411 / verdict.json
{ "finding_id": "DF-4411", "status": "untested", "attempts": 0, "reproduced": 0, "confidence": "certain", "impact": "none", "verdict": "Source-verified hygiene defect: acpi_asus_probe mutates the driver-wide static model tables in place when applying look-alike quirks (acpi_asus.c:682 lcd_get=NULL for L2B-on-L3C, :689 A3G-on-M6R override, :697 wled_set, :705 mled_set=NULL) and attach writes sc->model->n_func (:807-808). The borrowed entry is modified, not a copy, so probe is non-idempotent: multi-ATK0100-device or reprobe scenarios observe contaminated entries (a prior L2B permanently disables a genuine L3C lcd sysctl via acpi_asus_sysctl_init :1133-1166 returning FALSE on NULL lcd_get), and concurrent probes race on unsynchronized stores. Info severity: silent feature loss / model misconfiguration, no memory corruption, no unprivileged trigger (firmware-gated, verified absent on guest - env.txt).", "exploit_chain": "", "evidence": "findings/poc/DF-4411/VERDICT.md, README.md, env.txt, fix.diff (per-softc model copy)", "kernel_refs": [ "sys/dev/acpica/acpi_asus/acpi_asus.c:146", "sys/dev/acpica/acpi_asus/acpi_asus.c:682", "sys/dev/acpica/acpi_asus/acpi_asus.c:689", "sys/dev/acpica/acpi_asus/acpi_asus.c:697", "sys/dev/acpica/acpi_asus/acpi_asus.c:705", "sys/dev/acpica/acpi_asus/acpi_asus.c:807" ], "poc_changes": "", "guest_uname": "DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64", "runtime_sec": 5, "guest_dirty": 0, "build_cmd": "", "run_cmd": "", "code_hash": "b781e8f61fc6693e8bef274dc87a5629b4ae63f0ffcfccfbcc36b7c4f91a6cf3", "notes": "Filed as Info hardening/correctness; also the enabling condition for the DF-4409 removal-mismatch pattern.", "recommended_fix": "Make the model tables const and apply quirks (incl. n_func default) to a per-instance copy in the softc (sc->model_copy); see fix.diff sketch.", "fix_status": "not_testable", "fix_baseline_reproduced": 0, "fix_patched_reproduced": 0, "fix_verdict": "fix.diff authored from source analysis; cannot be validated on the audit guest (driver requires ASUS/Samsung/EeePC firmware).", "fix_evidence": "findings/poc/DF-4411/fix.diff; env.txt" } |