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

dc_clock_type_to_atom default path leaves *atom_clock_type uninitialized yet returns true β€” latent uninitialized-stack feed into ATOM setdceclock params (v2)

Summary

Default branch neither writes the output nor clears retCode while the consumer declares the variable uninit and copies it into the VBIOS command - unreachable today (enum exactly 2 members, driver-internal), live the moment the enum is extended. retCode=false fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-4935 Β· 1 files
FileTypeDescriptionSize
verdict.json file 969 B view raw

Fix verification

not_testable
per-fix-DF-4935

Confirmed kernel references

Detail

Exploit chain

none today (enum-closed)

Evidence (decisive lines)

findings/poc/DF-4935/ (this verdict)

Verdict

Latent output-param contract violation (Info/speculative): the default branch ASSERTs without writing *atom_clock_type or clearing retCode - the function can return true with the output untouched, and the live consumer set_dce_clock_v2_1 declares the variable uninitialized and copies it into the VBIOS command. Unreachable today (the enum has exactly the two handled members, driver-internal source) - becomes a live uninit-stack-to-VBIOS feed the moment the enum is extended (DCN upstream added PIXELCLK for exactly this table). retCode=false-in-default fix.