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

bzero (not explicit_bzero) used to clear sensitive key material in heap structs: DSE risk

Summary

Plain bzero used for heap secrets: r_ss(:411), full handshake struct containing hs_e/hs_ck/hs_hash(:678), PSK(:634). Stack secrets correctly use explicit_bzero(:343,:608,:830,etc). Dead-store elimination may remove bzero if compiler proves memory never read after. Defense-in-depth inconsistency. Fix: replace bzero->explicit_bzero at :411,:634,:678.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-0464 Β· 1 files
FileTypeDescriptionSize
fix.diff suggested-fix bzero (not explicit_bzero) used to clear sensitive key material in heap structs: 487 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/wg/wg_noise.c:411: bzero (not explicit_bzero) used to clear sensitive key material (DSE)

Verified recommended fix

Source-confirmed at sys/net/wg/wg_noise.c:411: bzero (not explicit_bzero) used to clear sensitive key material (DSE)

Verdict

Source-confirmed at sys/net/wg/wg_noise.c:411: bzero (not explicit_bzero) used to clear sensitive key material (DSE)