🔍 CVE-2026-99028

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Xilinx AXI 이더넷(axienet) 드라이버에서, dmaengine 경로로 인터페이스를 내릴 때(ndo_stop) 엔진이 아직 소유한 SKB와 DMA 매핑이 해제되지 않고 누수되는 문제가 수정되었습니다. 또한 DMA 완료 콜백이 정지 중에 새 버퍼를 등록하여 해제된 버퍼에 엔진이 쓰는 경쟁 상태도 함께 해결되었습니다.

💡 쉬운 설명

네트워크 인터페이스를 끌 때 일부 메모리가 반환되지 않고 계속 남아 시스템 자원이 조금씩 새어 나갑니다. 장시간 반복하면 제한된 IOMMU 메모리 영역이 고갈될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: xilinx: axienet: Free outstanding DMA buffers on dmaengine stop In the dmaengine path the driver pre-submits RX buffers and holds in-flight TX buffers whose SKBs are DMA-mapped by the driver and freed only in the completion callbacks. On ndo_stop() dmaengine_terminate_sync() aborts these descriptors without running their callbacks, and the driver then frees only the ring shells, leaking every SKB still owned by the engine and its DMA mapping on each ifdown. With 128 RX buffers pre-posted per channel, the mapping leak can eventually exhaust a limited IOMMU aperture. Clear the slot's skb in the TX and RX callbacks so a non-NULL skb marks a slot that still owns a live, DMA-mapped buffer, and on stop unmap and free every such buffer. axienet_dma_rx_cb() runs from the DMA tasklet and re-arms the RX ring on each completion, so it can race axienet_stop(): a completion may submit a fresh buffer after dmaengine_terminate_sync() has returned, leaving the channel armed with a buffer the teardown then frees while the engine may still write into it (dma_release_channel() does not stop it either). Add a lock that axienet_dma_rx_cb() holds across the @stopping check and the resubmit, and axienet_stop() holds to set @stopping before terminating. Once @stopping is set no callback can arm a new buffer, and any armed just before is aborted by the terminate, so teardown only frees buffers the engine no longer owns.

📍 영향받는 시스템

Linux 커널의 Xilinx axienet 드라이버를 사용하는 장치 (수정 커밋 이전 커널 버전, 정확한 버전 범위는 CVE 정보 미확인)

⚔️ 공격 벡터

외부에서 직접 악용하는 공격 경로는 확인되지 않았으며, 인터페이스를 반복적으로 내리고 올리는 로컬 작업으로 자원 누수가 누적되는 신뢰성/가용성 문제입니다.

🛡️ 대응 방법

배포판 제공 업데이트로 수정된 Linux 커널을 설치하고 재부팅하십시오.

🔧 검증 코드

커널 버전을 확인하고 배포판 보안 공지에서 해당 수정 커널 버전 이상인지 비교합니다; axienet 모듈이 출력되지 않으면 이 드라이버는 영향을 받지 않습니다.

Shell / Script
uname -r && grep -l axienet /proc/modules /sys/module/*/refcnt 2>/dev/null | head -n 1

💻 영향받는 소프트웨어

Linux Kernel