⬢ DragonFlyBSD Kernel Audit
DF-3415 / manifest.json
← back to finding ↓ download raw
{
  "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"
  ]
}