🇰🇷 한글 설명
Linux 커널의 mana 네트워크 드라이버에서 큐 할당 실패 시 정리 과정 중 NULL 포인터를 참조하여 발생하는 커널 패닉 취약점입니다. mana_chn_setxdp(), mana_destroy_vport() 등 여러 경로에서 NULL 체크 없이 포인터를 역참조하여 시스템이 중단될 수 있습니다.
💡 쉬운 설명
네트워크 장치를 설정하다가 오류가 발생했을 때, 컴퓨터가 이미 비어있는 메모리 주소를 참조하려고 시도하여 시스템이 갑자기 멈추는 문제입니다. 이를 방지하기 위해 메모리가 비어있는지 확인하는 안전장치를 추가해야 합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: mana: Add NULL guards in teardown path to prevent panic on attach failure
When queue allocation fails partway through, the error cleanup frees
and NULLs apc->tx_qp and apc->rxqs. Multiple teardown paths such as
mana_remove(), mana_change_mtu() recovery, and internal error handling
in mana_alloc_queues() can subsequently call into functions that
dereference these pointers without NULL checks:
- mana_chn_setxdp() dereferences apc->rxqs[0], causing a NULL pointer
dereference panic (CR2: 0000000000000000 at mana_chn_setxdp+0x26).
- mana_destroy_vport() iterates apc->rxqs without a NULL check.
- mana_fence_rqs() iterates apc->rxqs without a NULL check.
- mana_dealloc_queues() iterates apc->tx_qp without a NULL check.
Add NULL guards for apc->rxqs in mana_fence_rqs(),
mana_destroy_vport(), and before the mana_chn_setxdp() call. Add a
NULL guard for apc->tx_qp in mana_dealloc_queues() to skip TX queue
draining when TX queues were never allocated or already freed.
📍 영향받는 시스템
Linux kernel (mana network driver module)
⚔️ 공격 벡터
네트워크 큐 할당 실패를 유도하는 특정 네트워크 설정 변경 또는 오류 상황 발생 시 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 NULL 가드 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.