CVE-2026-68330 in Linux
요약
\~에 의해 VulDB • 2026. 08. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
net: airoha: NPU 메일박스 버퍼에 대한 DMA 방향 수정
airoha_npu_send_msg()는 항상 메일박스 버퍼를 DMA_TO_DEVICE로 매핑하지만, 일부 호출자는 NPU가 응답 데이터를 동일한 버퍼에 다시 작성하기를 기대합니다.
- airoha_npu_wlan_msg_get()(NPU_OP_GET): NPU가 버퍼에 응답을 작성한 후, 호출자가 memcpy()를 통해 이를 읽습니다. - airoha_npu_ppe_stats_setup()(NPU_OP_SET): NPU가 응답에서 npu_stats_addr 필드를 다시 작성합니다.
EN7581(Cortex-A53 기반)과 같은 비캐시 일관성(non-cache-coherent) 아키텍처에서는(하드웨어 캐시 일관성이 없는 NPU DMA의 경우), DMA_TO_DEVICE로 언매핑(unmap)하는 것은 무작위 연산(no-op)입니다. 즉, CPU 캐시를 무효화하지 않습니다. 호출자가 버퍼를 읽을 때 NPU가 작성한 캐시 라인이 여전히 CPU 캐시에 존재하면, CPU는 NPU 응답 대신 낡은(stale) 데이터를 관찰하게 됩니다.
이는 타이밍에 민감한 버그입니다: 작은 메일박스 버퍼(~24바이트)는 일반적으로 단일 캐시 라인에 맞으며 호출자가 읽을 때까지 캐시에 남아 있을 수 있어, 충돌(crash)보다는 침묵하는 데이터 손상(silent data corruption)을 초래합니다. 호출자가 dma_unmap_single() 직후 개입된 캐시 제거(cache-evicting) 작업 없이 응답을 즉시 읽는 경우 버그가 발생할 가능성이 더 높습니다.
매핑과 언매핑 모두에 DMA_BIDIRECTIONAL을 사용하여 수정하면, 비일관성 시스템에서 dma_unmap_single()가 CPU 캐시를 무효화하도록 보장합니다. 메일박스 버퍼의 크기가 작으므로 성능 문제는 없습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.