logoalt Hacker News

Animats12/10/20242 repliesview on HN

FireWire had a backdoor into memory. FireWire isn't a "bus", it's a local area network. Mostly you send packets around. IP over Firewire was a thing. But there are also built-in packets to read and write memory, one word at a time. That's how commands are sent. This probably made sense to people who thought in terms of device registers, rather than a command with parameters.

There's a register in most Firewire controllers where you can set the address bounds for which that function is available. I once noted that the hard-coded default values for Linux were 0 .. 2^32-1, that is, the first 4GB. I reported this as a security bug and was told it was needed for the kernel debugger.

Sigh.


Replies

KeplerBoy12/10/2024

PCIe is also a packet based point to point connection. Everything revolves around transaction level packets (TLPs).

01HNNWZ0MV43FF12/10/2024

I remember a security presentation on USB saying the same thing. It's a network, not a bus, and anything on a network can be malicious