🔍 CVE-2026-31395

7.1
CVSS Score
HIGH
2026-04-03
2026-07-24 22:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 bnxt_en 드라이버에서 비동기 이벤트 핸들러가 펌웨어 제공 'type' 필드를 경계 검사 없이 직접 인덱스로 사용하여 커널 힙 메모리에 접근할 수 있다. 손상되거나 악의적인 NIC이 0~65535 범위의 값을 제공하여 커널 메모리 손상 또는 시스템 크래시를 유발할 수 있다.

💡 쉬운 설명

Linux 커널 네트워크 드라이버에서 네트워크 카드로부터 받은 명령을 충분히 검증하지 않아 메모리 접근 오류가 발생하는 문제입니다. 악의적인 또는 손상된 네트워크 카드가 이를 악용하면 시스템이 비정상 종료될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: bnxt_en: fix OOB access in DBG_BUF_PRODUCER async event handler The ASYNC_EVENT_CMPL_EVENT_ID_DBG_BUF_PRODUCER handler in bnxt_async_event_process() uses a firmware-supplied 'type' field directly as an index into bp->bs_trace[] without bounds validation. The 'type' field is a 16-bit value extracted from DMA-mapped completion ring memory that the NIC writes directly to host RAM. A malicious or compromised NIC can supply any value from 0 to 65535, causing an out-of-bounds access into kernel heap memory. The bnxt_bs_trace_check_wrap() call then dereferences bs_trace->magic_byte and writes to bs_trace->last_offset and bs_trace->wrapped, leading to kernel memory corruption or a crash. Fix by adding a bounds check and defining BNXT_TRACE_MAX as DBG_LOG_BUFFER_FLUSH_REQ_TYPE_ERR_QPC_TRACE + 1 to cover all currently defined firmware trace types (0x0 through 0xc).

📍 영향받는 시스템

bnxt_en 드라이버를 사용하는 Linux 커널 (패치 적용 전)

⚔️ 공격 벡터

악의적이거나 손상된 NIC 펌웨어가 비동기 이벤트 완료 링의 범위를 벗어난 type 값 전송

🛡️ 대응 방법

bnxt_async_event_process() 함수에 경계 검사가 추가된 패치된 Linux 커널로 업데이트

🔧 검증 코드

커널 버전 확인 후 bnxt_en 드라이버 로드 여부 확인. 로드된 경우 커널 보안 공지에서 해당 버전의 패치 상태 확인.

Shell / Script
uname -r && lsmod | grep bnxt_en || echo 'driver not loaded'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel