DragonFlyBSD Kernel Audit
← triage · dashboard
DF-2301

Off-by-one OOB read in print_db iterates one past the DMA descriptor array

Summary

print_db loops with for(i=0;i<=max;i++) where max=dbch->ndesc iterating ndesc+1 times over db array that has only ndesc entries. Uses <= instead of <. When key==OHCI_KEY_ST2 accesses db[i+1] (line 2379) then i++ (line 2400) compounding OOB. Reads past DMA descriptor allocation potentially causing kernel panic if access hits unmapped memory or leaking adjacent DMA memory contents to kernel console. Reached via DUMPDMA ioctl (operator group) or when firewire_debug is set.

Discussion (0)

No comments yet.