DF-5651 / verdict.json
{ "finding_id": "DF-5651", "status": "untested", "reproduced": false, "impact": "none", "confidence": "certain", "verdict": "Static-analysis finding (Info severity, no security impact): the memory-to-CPU affinity association compares the 32-bit memory ProximityDomain against the CPU entrys single ProximityDomainLo byte (acpi_srat.c:113,124-125), ignoring ProximityDomainHi[3] (actbl3.h:377) and the Type-2 x2APIC entries entirely (:118-120). Domains >= 256 either never match (range dropped, (not found), vm_numa_organize never called) or collide with an unrelated sockets low byte (pages organized under the wrong NUMA domain, vm_page.c:546-547). Downstream values are bounded (ApicId u8, physid mod cpu_topology_phys_ids), so this is a correctness/silent-NUMA-misdirection gap, not memory corruption. Not verified on the guest: the QEMU rig is single-socket (cpu_topology_phys_ids == 1, vm_numa_organize early-returns at vm_page.c:534) so no observable NUMA placement exists to misdirect.", "exploit_chain": "", "evidence": "README.md cites acpi_srat.c:112-113,124-125 (Lo-only compare), :118-120 (Type-0-only dispatch), actbl3.h:377 (ProximityDomainHi), vm_page.c:534-547 (bounded downstream use).", "kernel_refs": [ "sys/platform/pc64/acpica/acpi_srat.c:112", "sys/platform/pc64/acpica/acpi_srat.c:113", "sys/platform/pc64/acpica/acpi_srat.c:118", "sys/platform/pc64/acpica/acpi_srat.c:124", "sys/contrib/dev/acpica/source/include/actbl3.h:377", "sys/vm/vm_page.c:534", "sys/vm/vm_page.c:547" ], "poc_changes": "No PoC authored (Info; single-socket rig cannot manifest NUMA misdirection).", "attempts": 0, "guest_uname": "DragonFly dfbsd 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": 0, "guest_dirty": 0, "build_cmd": "", "run_cmd": "", "code_hash": "", "notes": "Pass-2 depth finding from the domain-association review requested in the checklist item (b).", "recommended_fix": "Compare full 20-bit domain (Hi[3]<<8|Lo) and handle ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY entries 32-bit domain and APIC ID.", "fix_status": "not_testable", "fix_baseline_reproduced": false, "fix_patched_reproduced": false, "fix_verdict": "Info-severity correctness gap; no fix build warranted (single-socket QEMU rig has cpu_topology_phys_ids==1 so vm_numa_organize is a no-op and misdirection is unobservable).", "fix_evidence": "" } |