🇰🇷 한글 설명
Linux 커널의 bnxt_en 드라이버에서 큐 재시작 실패 시 라이브 링의 TPA 상태를 해제하지 않는 취약점이 해결되었습니다. 메모리 할당 실패 시 클론된 구조체의 포인터가 라이브 링의 메모리를 가리키고 있어, 사용 중인 메모리가 의도치 않게 해제될 수 있는 문제입니다.
💡 쉬운 설명
네트워크 장치 드라이버가 작동 중에 오류가 발생하면, 현재 사용 중인 중요한 메모리 데이터를 실수로 지워버릴 수 있는 결함입니다. 이로 인해 시스템이 갑자기 멈추거나 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Don't free the live ring's TPA state on queue restart failure
bnxt_queue_mem_alloc() shallow copies the live RX ring into the clone:
memcpy(clone, rxr, sizeof(*rxr));
the code currently clears pointers that the clone owns (such as
rx_agg_bmap), but rx_tpa and rx_tpa_idx_map are left pointing at memory
of the live ring that was cloned.
If an allocation failure happens later and the err_free_tpa_info label
is taken, the live ring's memory can be freed while still in use.
Fix this by initializing the clone's pointers to NULL to prevent live
ring state from being freed inadvertently.
📍 영향받는 시스템
Linux kernel (bnxt_en driver 사용 시스템)
⚔️ 공격 벡터
로컬 환경에서 특정 네트워크 큐 재시작 조건을 유도하여 메모리 해제 오류 발생 (DoS 가능성)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.