CVE-2026-99079 in Linux
요약
\~에 의해 VulDB • 2026. 10. 23.
Linux 커널에서 다음 취약점이 해결되었습니다:
net/mlx5e: 리필 재시도 시 stale XSK 버퍼 해제 방지
XDP가 AF_XDP 소켓으로 리디렉션될 때 RX 링이 가득 차 있어 실패하면, XSK 코어는 해당 버퍼를 해제합니다. 이후 레거시 순환 RQ(Receive Queue)의 배치된 리필 과정에서 mlx5e도 대체재를 할당하기 전에 WQE(Work Queue Element)의 XSK 버퍼를 해제합니다. 만약 이 리필이 부분적으로만 성공하면, 대체재가 없는 WQE는 이전의(old) 버퍼 포인터를 그대로 유지하게 됩니다.
그 사이 해당 버퍼는 다른 WQE에 할당될 수 있습니다. 이후 리필 재시도 시 stale 포인터를 통해 살아있는(live) 버퍼가 해제되고, 동일한 UMEM 프레임이 두 번 게시(publish)되는 문제가 발생합니다.
드라이버 측에서 해제가 이루어진 직후 WQE를 '해제됨(released)'으로 표시합니다. 대체 버퍼가 할당되면 이 플래그는 이미 클리어되므로, 리필 재시도 시 더 이상 stale 포인터가 해제되지 않습니다.
이 결함은 조용히 발생하며 커널 경고나 스플래트(splat)를 생성하지 않습니다. 12 Mpps의 대역폭으로 제공되는 64바이트 UDP 트래픽을 사용하는 독립형 레거시 순환-RQ zero-copy libxsk 리프로듀서(reproducer)가 이를 감지했습니다: 기본 상태에서는 4.094초 동안 2,854,914개 패킷 처리 후 중단되었으며, 이때 xdp_rx_ring_full 이벤트가 4,542회 발생하고 소유권/이중 게시(double-publication) 오류가 64건 있었습니다. 이번 변경을 적용한 후에는 30초 동안 356,904,225개 패킷을 처리했으며(xdp_rx_ring_full 이벤트는 571,405회 발생했지만), 소유권 또는 데이터 오류는 없었습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.