🇰🇷 한글 설명
Linux 커널의 PCI dwc 엔드포인트 드라이버에서 MSI(Message Signaled Interrupts) 쓰기 작업이 완료되기 전에 iATU 매핑이 해제될 수 있는 취약점이 발견되었습니다. 이로 인해 캐시된 MSI 쓰기 데이터가 유실되거나 잘못된 경로로 전달될 위험이 있습니다. 이를 해결하기 위해 iATU 매핑 해제 전 MSI 윈도우에서 읽기 작업을 수행하여 쓰기 작업을 강제로 완료하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터 부품이 신호를 보낼 때, 신호가 완전히 도착하기도 전에 통로를 닫아버려 신호가 사라지거나 엉뚱한 곳으로 가는 문제입니다. 이로 인해 시스템이 오작동하거나 예기치 않은 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
PCI: dwc: ep: Flush cached MSI write before unmapping the iATU
The MSI-X path already flushes any posted MSI-X write before tearing down
its iATU mapping. That was added by commit c22533c66cca ("PCI: dwc: ep:
Flush MSI-X write before unmapping its ATU entry") to make sure the write
reaches the Root Complex before the outbound window that translates it
disappears.
The MSI path has the same problem but no equivalent flush. When the
Endpoint driver caches an MSI target address and later observes that the
Root Complex has changed it, dw_pcie_ep_raise_msi_irq() unmaps the existing
iATU entry and reprograms it for the new address. Between the last MSI
writel() and the unmap there may still be a posted write sitting in the
fabric, and unmapping the iATU entry can drop or misroute that write.
Fix this by reading back from the mapped MSI window before the unmap. The
readback drains any posted MSI writes through the same iATU entry that
mapped them, which is the same logic the MSI-X path uses.
[mani: commit log]
📍 영향받는 시스템
Linux kernel (PCI dwc endpoint driver 사용 시스템)
⚔️ 공격 벡터
하드웨어 인터럽트 처리 과정에서의 레이스 컨디션 또는 데이터 유실을 이용한 시스템 불안정 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인하십시오.