DF-3415 / manifest.json
{ "finding_id": "DF-3415", "title": "in6_pcbconnect() reads sin6_addr before sa_len validation (DF-3357/DF-3372 family): OOB heap read past user-copied sockaddr length decides connect() errno", "verdict": "reproduced", "impact": "leak", "confidence": "certain", "reproduce": { "build": "cd /tmp/df3415 && cc -O2 -Wall -o in6_v4mapped_oob in6_v4mapped_oob.c", "run": "su -m maxx -c /tmp/df3415/in6_v4mapped_oob", "expected": "A(groom 00 ff ff): EADDRNOTAVAIL=20/20; B(groom 00 00 00): EINVAL=20/20; C(no groom): EINVAL=20/20 — errno chosen by heap bytes outside the supplied sockaddr" }, "kernel_refs": [ "sys/netinet6/in6_pcb.c:344", "sys/netinet6/in6_pcb.c:282", "sys/netinet6/in6_pcb.c:351", "sys/kern/uipc_syscalls.c:1513", "sys/netinet6/udp6_usrreq.c:596", "sys/netinet6/in6.h:316" ], "artifacts": [ "in6_v4mapped_oob.c", "build.sh", "run.sh", "build.log", "run.log", "run.2.log", "env.txt", "VERDICT.md", "README.md", "fix.diff", "manifest.json", "verdict.json" ] } |