DF-2851 / manifest.json
{ "finding_id": "DF-2851", "title": "netmsg_so_notify abort race: accept predicate mutates nm_so while abortable -> unserialized abort on wrong socket (wrong-list TAILQ_REMOVE / illegal token release / double reply)", "file": "sys/kern/uipc_msg.c", "verdict": "reproduced", "impact": "panic", "confidence": "certain", "reproduce": { "build": "cc -O2 -pthread -Wall -o /tmp/accept_abort_race /tmp/accept_abort_race.c", "run": "/tmp/accept_abort_race 240", "expected": "kernel panic 'lwkt_reltoken: illegal release' with netmsg_so_notify_abort in the backtrace within seconds-to-minutes (unprivileged); with fix.diff applied: no panic over 2x240s" }, "kernel_refs": [ "sys/kern/uipc_msg.c:702-715", "sys/kern/uipc_msg.c:744-751", "sys/kern/uipc_syscalls.c:244-262", "sys/kern/uipc_socket2.c:616-630", "sys/kern/lwkt_token.c:816-823" ], "fix_status": "fixed", "artifacts": [ "README.md", "VERDICT.md", "accept_abort_race.c", "build.sh", "run.sh", "build.log", "run.log", "panic.txt", "panic_run2.txt", "boot_full.txt", "boot_full_run2.txt", "fixrun.log", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |