DF-5674 / manifest.json
{ "finding_id": "DF-5674", "title": "prop_dictionary keysym release mutates the global rb-tree without the tree mutex (CWE-362 -> CWE-416)", "manifest_version": 1, "verdict": "reproduced", "impact": "userland heap corruption (same-source libprop); latent kernel heap corruption", "reproduce": { "build": "sh build.sh (guest, as root, /tmp; builds baseline/probe/fixed libs from /usr/src/sys/libprop + harnesses)", "run": "sh run.sh", "expected": "baseline: SIGSEGV in _prop_rb_tree_remove_node (5/5); probe: DF5674_unlocked_frees=88..1145 + crash incl. _prop_rb_tree_insert_node; control noremove: survives; fixed lib: 10/10 survive" }, "kernel_refs": [ "sys/libprop/prop_dictionary.c:148-153", "sys/libprop/prop_dictionary.c:203-206", "sys/libprop/prop_dictionary.c:233-242", "sys/libprop/prop_dictionary.c:294-341", "sys/libprop/prop_dictionary.c:843-871", "sys/libprop/prop_dictionary.c:1006-1011", "sys/libprop/prop_dictionary.c:1082-1107", "sys/libprop/prop_dictionary.c:1123", "sys/libprop/prop_object.c:1061-1107", "sys/libprop/prop_array.c:72-80", "sys/kern/kern_udev.c:229-235", "sys/kern/kern_udev.c:405", "sys/kern/vfs_quota.c:344-349" ], "artifacts": [ "README.md", "VERDICT.md", "race_keysym.c", "race_attr.c", "race_probe.c", "proprop_dictionary.c", "pfix_dictionary.c", "pfix_object_impl.h", "build.sh", "run.sh", "run.log", "run.2.log", "run.3.log", "fixrun-summary.txt", "console_crash.txt", "env.txt", "fix.diff", "code_hashes.txt", "manifest.json", "verdict.json" ] } |