🇰🇷 한글 설명
Linux 커널의 NTB(Non-Transparent Bridge) 드라이버에서 너무 큰 TX 버퍼를 처리할 때 메모리 누수가 발생하는 취약점입니다. ntb_process_tx() 함수가 잘못된 방식으로 버퍼를 처리하여 skb(socket buffer)를 해제하지 못하고 남겨두는 문제가 있었습니다.
💡 쉬운 설명
데이터를 전송할 때 정해진 크기보다 너무 큰 데이터를 보내면, 컴퓨터가 사용하던 메모리를 제대로 정리하지 못하고 계속 쌓아두는 현상이 발생합니다. 이 문제가 반복되면 시스템의 메모리가 부족해져 성능 저하나 중단이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
NTB: ntb_transport: Reject oversized TX buffers
ntb_process_tx() handles an oversized buffer by calling tx_handler()
with a NULL data pointer and returning success. ntb_netdev therefore
neither frees the skb in its completion callback nor takes its enqueue
error path, leaking it.
Reject oversized buffers in ntb_transport_tx_enqueue() before acquiring
a queue entry and return -EMSGSIZE. The caller retains ownership of the
buffer, and the preceding netdev patch frees the skb when enqueue
returns this permanent error.
📍 영향받는 시스템
Linux kernel (NTB transport driver 사용 시스템)
⚔️ 공격 벡터
로컬 또는 네트워크를 통해 비정상적으로 큰 크기의 NTB 전송 버퍼를 전송하여 메모리 누수 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ntb_transport_tx_enqueue()의 버퍼 크기 검증 로직 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인