🇰🇷 한글 설명
Linux 커널의 net/mlx5 드라이버에서 멀티 패킷 WQE 전송 중 오류 경로 처리 결함이 발견되었습니다. DMA 매핑이 생성되지 않은 상태에서 잘못된 unmap 작업이 수행되어, 활성 매핑 중 하나를 무작위로 제거함으로써 IOMMU 오류나 PCI 장치의 에러 상태를 유발할 수 있습니다.
💡 쉬운 설명
메모리 부족 상황에서 네트워크 장치가 데이터를 주고받기 위한 통로를 만들려다 실패할 때, 엉뚱한 통로를 끊어버리는 버그입니다. 이로 인해 시스템의 네트워크 장치가 오작동하거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5: Fix error path in multi-packet WQE transmit
Remove the erroneous unmap in case no DMA mapping was established
The multi-packet WQE transmit code attempts to obtain a DMA mapping for
the skb. This could fail, e.g. under memory pressure, when the IOMMU
driver just can't allocate more memory for page tables. While the code
tries to handle this in the path below the err_unmap label it erroneously
unmaps one entry from the sq's FIFO list of active mappings. Since the
current map attempt failed this unmap is removing some random DMA mapping
that might still be required. If the PCI function now presents that IOVA,
the IOMMU may assumes a rogue DMA access and e.g. on s390 puts the PCI
function in error state.
The erroneous behavior was seen in a stress-test environment that created
memory pressure.
📍 영향받는 시스템
Linux kernel (net/mlx5 driver components)
⚔️ 공격 벡터
메모리 압박(Memory Pressure) 상황을 유도하여 시스템의 안정성을 해치는 DoS(서비스 거부) 공격 가능성
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.