DF-3280 / manifest.json
{ "finding_id": "DF-3280", "title": "if_getgroupmembers() walks a stale ifg_group pointer: SIOCGIFGMEMB use-after-free read", "verdict": "reproduced", "impact": "leak", "confidence": "certain", "reproduce": { "build": "cc -O2 -o /root/gmembr_churn /root/gmembr_churn.c && cc -O2 -o /root/gmembr_reader /root/gmembr_reader.c", "run": "(root) nohup /root/gmembr_churn rgrpA lo0 >/root/churn.log 2>&1 & ; (unpriv user) /home/maxx/gmembr_reader rgrpA", "expected": "reader logs ANOMALY lines (member entries that are not 'lo0' = kernel heap read through the dangling ifg pointer); baseline runs produced 2/9/3 anomalies across three independent runs; panic possible but not observed (type-stable 48-byte M_IFNET bucket reuse); fixed kernel: 0 anomalies." }, "kernel_refs": [ "sys/net/if.c:1314", "sys/net/if.c:1324", "sys/net/if.c:1337", "sys/net/if.c:1346", "sys/net/if.c:1350", "sys/net/if.c:1352", "sys/net/if.c:1366", "sys/net/if.c:1234", "sys/net/if.c:1139", "sys/net/if.c:1289" ], "artifacts": [ "README.md", "VERDICT.md", "gmembr_reader.c", "gmembr_churn.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "run.3.log", "churn3.log", "run.fix.log", "churnFIX.log", "fix.diff", "fix_validation.diff", "kbuild.log", "env.txt", "manifest.json", "verdict.json" ] } |