

QEMU 커스텀 드라이버 익스플로잇 - DMA MMIO 재진입 취약점 (Matryoshka Trap 논문 기반)
실제 하드웨어 DMA는 메모리만 다루지만,
가상 디바이스의 DMA 버퍼 주소가 다시 디바이스의 MMIO 영역을 가리킬 수 있음
→ 이 경우 DMA read/write가 또 다른 MMIO 연산을 트리거하여 재귀적으로 장치 상태를 꼬이게 만든다.
이런 DMA 재진입은 디바이스 상태 머신이 잘못된 상태(UAF 등) 에 빠지는 원인이 된다.
WRITE_NOTE_PROCESS_RWVEC라는 batched MMIO 연산을 지원한다.RWvec.buf 값을 장치의 MMIO 영역으로 설정하면, DMA 재진입이 발생한다.WRITE_RESET이나 WRITE_NOTE_RESIZE 과정에서 free될 수 있다.→ 즉, 게스트에서 조작 가능한 UAF 발생이 취약 지점이다.