DF-2689 / verdict.json
{ "finding_id": "DF-2689", "status": "untested", "reproduced": 0, "impact": "none", "confidence": "certain", "verdict": "Source-certain Info finding: an unconditional leftover kprintf at sys/vm/vm_pageout.c:1932 prints 'DEBUG: pageout HOLD->FREE <ptr>' on the PQ_HOLD scanner's normal, expected recovery path, disclosing a kernel heap pointer to the console/message buffer (CWE-532) and spamming the log under ordinary unprivileged memory pressure. The surrounding hold/unhold 'reprocess' logic was re-verified correct against vm_page_unhold's spinlocked re-test protocol (vm_page.c:1413-1432) and vm_page_free_toq's object disassociation (vm_page.c:3186); only the print is wrong. No guest run: static one-line defect, trigger race is rare and demonstrates nothing beyond the source.", "exploit_chain": "", "evidence": [ "sys/vm/vm_pageout.c:1932 (the DEBUG print)", "sys/vm/vm_page.c:1403-1410 (documented free/unhold race this scanner cleans)", "sys/vm/vm_page.c:1420-1428 (unhold re-test under spinlocks — scanner dance verified safe)", "findings/poc/DF-2689/fix.diff (delete the line)" ], "kernel_refs": [ "sys/vm/vm_pageout.c:1932", "sys/vm/vm_page.c:1407", "sys/vm/vm_page.c:1421" ], "poc_changes": "", "attempts": 0, "guest_uname": "", "runtime_sec": 0, "guest_dirty": 0, "build_cmd": "", "run_cmd": "", "code_hash": "", "notes": "Guest left up and clean; verification intentionally skipped per contract for Info-hardening findings (status reported as 'untested' per the strict poc_results enum).", "recommended_fix": "Delete the kprintf at vm_pageout.c:1932 (or gate it behind vm_pageout_debug)." } |