DF-3377 / manifest.json
{ "finding_id": "DF-3377", "title": "PIM6 REGISTER decap panics: fake multicast_register_if never if_attach()ed; if_simloop() writes through NULL if_data_pcpu (3 stacked NULL derefs incl. in6_ifawithifp and in6_addr2zoneid)", "verdict": "reproduced", "reproduced": 1, "impact": "panic", "confidence": "certain", "reproduce": { "build": "cc -O -Wall -o /tmp/df3377 /root/poc/trigger_pim6_reg.c", "run": "/tmp/df3377 (as root)", "expected": "stock kernel #0: output stops after '[trigger] variant A ... sendto: rc=52'; serial console shows 'Fatal trap 12 ... fault virtual address = 0x0 ... Stopped at if_simloop+0x112: addq $0x1,(%rax)'. patched kernel #1: both variants complete with mif/sg counters incremented and 'no panic observed: guest still alive'." }, "kernel_refs": [ "sys/netinet6/ip6_mroute.c:1842", "sys/netinet6/ip6_mroute.c:175", "sys/netinet6/ip6_mroute.c:585-596", "sys/netinet6/ip6_mroute.c:1420-1421", "sys/netinet6/ip6_mroute.c:1433-1435", "sys/net/if_loop.c:284", "sys/net/if_var.h:685-688", "sys/net/if.c:550-553", "sys/net/if.c:591-593", "sys/netinet6/ip6_input.c:531-534", "sys/netinet6/in6.c:2318", "sys/netinet6/scope6.c:52-62", "sys/netinet6/scope6.c:278-288" ], "artifacts": [ "README.md", "VERDICT.md", "trigger_pim6_reg.c", "build.sh", "run.sh", "build.log", "run.log", "fix_run.log", "fix_build.log", "panic.txt", "panic.2.txt", "env.txt", "fix.diff", "manifest.json", "verdict.json" ] } |