β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-0717

Memory leak in netmap_open when devfs_set_cdevpriv fails β€” kfree missing on error path

Summary

netmap_freebsd.c:382 priv=kmalloc(sizeof(struct netmap_priv_d)). :387 error=devfs_set_cdevpriv(ap->a_fp,priv,netmap_dtor). :388-389 if(error) return error β€” priv NOT kfree before return. devfs_set_cdevpriv (devfs_core.c:2961-2986) returns ENOENT (NULL fp impossible normal open) or EBUSY (f_data1 already set not attacker-controllable fresh fd). sizeof(struct netmap_priv_d) leaked per failed open. No security impact: no kernel pointer deref of leaked memory underlying objects have own refcounts no cascade UAF. Hardening fix: kfree(priv) before return error.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-0717 Β· 1 files
FileTypeDescriptionSize
fix.diff suggested-fix Memory leak in netmap_open when devfs_set_cdevpriv fails β€” kfree missing on erro 350 B view raw

Fix verification

fixed
baseline reproduced→ patch + rebuild →patched clean

fix.diff applied + combined nativekernel build rc=0 (-Werror)

fix.diff applied + combined nativekernel build rc=0 (-Werror)
↓ fix.diffcombined build rc=0

Confirmed kernel references

β€”

Detail

Exploit chain

none (Info severity)

Evidence (decisive lines)

Source-confirmed at sys/net/netmap/netmap_freebsd.c:382: memory leak in netmap_open when devfs_set_cdevpriv fails

Verified recommended fix

Source-confirmed at sys/net/netmap/netmap_freebsd.c:382: memory leak in netmap_open when devfs_set_cdevpriv fails

Verdict

Source-confirmed at sys/net/netmap/netmap_freebsd.c:382: memory leak in netmap_open when devfs_set_cdevpriv fails