🇰🇷 한글 설명
Linux 커널의 bnxt_en 드라이버에서 RX 링 초기화 실패 시 오류를 제대로 전달하지 않는 취약점이 발견되었습니다. 이로 인해 메모리 할당 실패 시에도 TPA 기능이 활성화되어, 초기화되지 않은 0으로 채워진 DMA 주소가 할당될 수 있습니다.
💡 쉬운 설명
네트워크 장치를 준비하는 과정에서 오류가 발생했는데도 이를 무시하고 계속 진행하여 시스템이 잘못된 메모리 주소를 사용할 수 있는 문제입니다. 이로 인해 데이터가 엉뚱한 곳으로 전달되거나 시스템이 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Propagate RX ring init failures in bnxt_init_nic()
bnxt_init_rx_rings() returns an error when bnxt_alloc_one_rx_ring()
fails, but bnxt_init_nic() discards that return value and calls
bnxt_init_chip(), which enables TPA.
If an allocation fails, this could leave rxr->rx_tpa[] partially zeroed
and TPA would be enabled over an array with zeroed entries. This would
lead to a zeroed DMA address being handed out if the agg_idx is
translated to a SW index at a zeroed entry.
Fix this by propagating the error out of bnxt_init_nic(). Both callers
already check its return value and unwind with bnxt_free_skbs() and
bnxt_free_mem(), which tolerate a partially initialized RX ring.
📍 영향받는 시스템
Linux kernel (bnxt_en driver 사용 시스템)
⚔️ 공격 벡터
메모리 할당 실패를 유도하여 잘못된 DMA 주소 참조를 일으키는 방식 (로컬/시스템 상태 유도)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.