🇰🇷 한글 설명
Linux 커널의 NTB(Non-Transparent Bridge) 드라이버에서 QP 링크가 다운되었을 때 패킷 전송 요청이 실패하면 skb(소켓 버퍼)가 해제되지 않고 메모리 누수가 발생하는 취약점입니다. 기존 코드는 실패 시 성공(0)을 반환하여 시스템이 패킷이 정상 처리된 것으로 오해하게 만들었습니다. 이를 수정하여 링크 다운 시 적절한 오류 코드를 반환하고 메모리를 올바르게 관리하도록 개선되었습니다.
💡 쉬운 설명
네트워크 연결이 끊겼을 때 컴퓨터가 처리해야 할 데이터 뭉치를 버리지 못하고 메모리에 계속 쌓아두어 시스템 자원을 낭비하는 문제입니다. 이 문제가 지속되면 메모리가 부족해져 시스템 성능이 떨어지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
NTB: ntb_transport: Fail TX enqueue when the QP link is down
Commit f195a1a6fe41 ("ntb: Drop packets when qp link is down") meant to
make ntb_transport_tx_enqueue() drop packets submitted while the QP link
is down, but it only returns 0 without consuming the packet. Zero means
success by this function's contract, so ntb_netdev reports NETDEV_TX_OK
and forgets the skb: nothing queued it, nothing frees it, and it leaks,
one skb for every transmit racing a link-down.
Return -ENOLINK instead, restoring the contract that a non-zero return
leaves the buffer owned by the caller. With the preceding patch,
ntb_netdev frees the skb on non-retryable enqueue failures and returns
NETDEV_TX_OK, so a packet racing with link-down is dropped without leaking
or entering a busy retry loop.
📍 영향받는 시스템
NTB(Non-Transparent Bridge) 기능을 사용하는 Linux 커널 버전 (f195a1a6fe41 커밋 적용 전 버전)
⚔️ 공격 벡터
직접적인 공격보다는 네트워크 링크 상태가 불안정한 환경에서 지속적인 패킷 전송 시도가 발생할 경우 메모리 누수를 유발할 수 있음
🛡️ 대응 방법
커널 패치(commit f195a1a6fe41 또는 이후 버전)를 적용하여 최신 Linux 커널로 업데이트
🔧 검증 코드
명령어 결과에 해당 커밋 해시나 메시지가 나타나면 취약점이 해결된 상태임
git log --oneline | grep -E 'f195a1a6fe41|ntb: Drop packets when qp link is down'