7 ms·
The gold is at the bottom: The idea here would be to see if it was possible to control the NVMe over jtag in order to ask it to perform a DMA read over the
by sounds 10y ago
The gold is at the bottom:
The idea here would be to see if it was possible to control the NVMe
over jtag in order to ask it to perform a DMA read over the PCIe Bus.
In order to do so, the PCI_COMMAND_BUS_MASTER has to be set to 1. We
can assume that since the chip is using remote RAM, it is allowed to
act as a master over PCIe. Here is a snippet of the probing function
of the kernel driver.
(code)
Our goal here is to force the DMA to happen just by controlling the
ARM of the NVMe over JTAG, in order to ask it to dump the region we
alloc'd in kernel and see if we get the data out of it.
In other words, full root exploit of the phone from the NVMe JTAG pins.
- walterbell 10y agoDoes the phone's ARM CPU have an IOMMU?
- huslage 10y agoYes
- revelation 10y agoThe JTAG angle is unnecessary, and difficult to do in practice with this LGA70 chip face-down soldered onto the logic board. It really means there is a Cortex-A (so lots of brunt) with a firmware update mechanism that has 1) direct access to the application processor RAM and 2) direct access to the plentiful permanent storage.
- huslage 10y agoHe made a board so that he can do JTAG in-line. Not sure how else he could tell the processor to do something.
- AstralStorm 10y agoBy flashing custom unverified firmware, of course.
- CountSessine 10y agoFlashing custom unverified but somehow-signed-with-Apple's-secret-key firmware?
- josephg 10y ago> In other words, full root exploit of the phone from the NVMe JTAG pins. Sure, except the data on the device will be encrypted. The keys are kept in the iphone's tamper resistant security enclave. Android and iOS both have full disk encryption enabled out of the box these days. (On iOS I don't think you can disable it.)
- honkhonkpants 10y agoThat isn't the point. This exploits the host, which holds plaintext data in memory.
- AceJohnny2 10y agoNo, it doesn't exploit the host. The "Host" in the case of such an NAND device is the Baseband SoC, not the ARM controller on the NAND device. You can be pretty sure that Apple did not include decryption on the NAND chip itself. That would defeat the point.
- honkhonkpants 10y agoThat isn't what he's describing. He is commanding the storage controller to initiate DMA from host memory over the PCI-Express bus.
- AceJohnny2 10y agoAh good point. However, he does this by using the NAND as a PCIe master, which implies that the peer (main SoC) would be switched to device mode, and the whole PCIe handshake happens properly. While I can't dismiss that possibility entirely, I'm not holding my breath for it to work out.
- AstralStorm 10y agoIt is a similar vector of attack as with root achieving pendrives, except PCIe devices are even less verified. TCB verification in TPM and firmware to verify the code running on the microcontroller is required to prevent such an attack.