I am continually perplexed at how hardware designers end up with these kinds of "features" on external ports.
Remember direct DMA attacks on FireWire, etc.?
SMH.
Remember direct DMA attacks on FireWire, etc.?
SMH.
(Firewire isn't DMA. PCI-E is DMA. Firewire is a network cable, over which software sends packets. LAN over FireWire was sometimes done. But there's an optional feature which recognizes special packets for doing word-size loads and stores. This is usually used to talk to dumb slave devices, where you write "registers" to make things happen. It's not needed on a computer, and it's far too slow for bulk transfers. FireWire isn't inherently more vulnerable than a LAN port.)
I imagine DMA was a trade-off for speed. Security is about such trade-offs.