🔍 CVE-2025-21974

5.5
CVSS Score
MEDIUM
2025-04-01
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 bnxt 이더넷 드라이버에서, 인터페이스가 다운된 상태에서 큐 메모리 할당 함수 bnxt_queue_mem_alloc()이 호출되면 해제된 수신 버퍼 디스크립터에 접근하여 커널 패닉이 발생할 수 있습니다. 이 문제는 큐 재시작 시 인터페이스 상태를 확인하지 않아 발생하며, 수정 패치에서는 인터페이스가 다운된 경우 실패를 반환하도록 변경되었습니다.

💡 쉬운 설명

네트워크 카드가 꺼져 있는 상태에서 특정 작업을 하면 시스템이 갑자기 멈출 수 있는 문제입니다. 이는 네트워크 장치 드라이버가 필요한 데이터를 확인하지 않고 접근하기 때문에 발생합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: eth: bnxt: return fail if interface is down in bnxt_queue_mem_alloc() The bnxt_queue_mem_alloc() is called to allocate new queue memory when a queue is restarted. It internally accesses rx buffer descriptor corresponding to the index. The rx buffer descriptor is allocated and set when the interface is up and it's freed when the interface is down. So, if queue is restarted if interface is down, kernel panic occurs. Splat looks like: BUG: unable to handle page fault for address: 000000000000b240 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 3 UID: 0 PID: 1563 Comm: ncdevmem2 Not tainted 6.14.0-rc2+ #9 844ddba6e7c459cafd0bf4db9a3198e Hardware name: ASUS System Product Name/PRIME Z690-P D4, BIOS 0603 11/01/2021 RIP: 0010:bnxt_queue_mem_alloc+0x3f/0x4e0 [bnxt_en] Code: 41 54 4d 89 c4 4d 69 c0 c0 05 00 00 55 48 89 f5 53 48 89 fb 4c 8d b5 40 05 00 00 48 83 ec 15 RSP: 0018:ffff9dcc83fef9e8 EFLAGS: 00010202 RAX: ffffffffc0457720 RBX: ffff934ed8d40000 RCX: 0000000000000000 RDX: 000000000000001f RSI: ffff934ea508f800 RDI: ffff934ea508f808 RBP: ffff934ea508f800 R08: 000000000000b240 R09: ffff934e84f4b000 R10: ffff9dcc83fefa30 R11: ffff934e84f4b000 R12: 000000000000001f R13: ffff934ed8d40ac0 R14: ffff934ea508fd40 R15: ffff934e84f4b000 FS: 00007fa73888c740(0000) GS:ffff93559f780000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000000000b240 CR3: 0000000145a2e000 CR4: 00000000007506f0 PKRU: 55555554 Call Trace: <TASK> ? __die+0x20/0x70 ? page_fault_oops+0x15a/0x460 ? exc_page_fault+0x6e/0x180 ? asm_exc_page_fault+0x22/0x30 ? __pfx_bnxt_queue_mem_alloc+0x10/0x10 [bnxt_en 7f85e76f4d724ba07471d7e39d9e773aea6597b7] ? bnxt_queue_mem_alloc+0x3f/0x4e0 [bnxt_en 7f85e76f4d724ba07471d7e39d9e773aea6597b7] netdev_rx_queue_restart+0xc5/0x240 net_devmem_bind_dmabuf_to_queue+0xf8/0x200 netdev_nl_bind_rx_doit+0x3a7/0x450 genl_family_rcv_msg_doit+0xd9/0x130 genl_rcv_msg+0x184/0x2b0 ? __pfx_netdev_nl_bind_rx_doit+0x10/0x10 ? __pfx_genl_rcv_msg+0x10/0x10 netlink_rcv_skb+0x54/0x100 genl_rcv+0x24/0x40 ...

📍 영향받는 시스템

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

⚔️ 공격 벡터

로컬 사용자 또는 권한이 있는 프로세스가 네트워크 인터페이스가 다운된 상태에서 큐 재시작 및 devmem 바인딩 작업을 유도하여 서비스 거부(커널 패닉)를 일으킬 수 있음

🛡️ 대응 방법

배포판 제공 최신 커널로 업데이트하거나 커널 메인라인의 bnxt 관련 수정 패치를 적용하여 재부팅

🔧 검증 코드

출력된 커널 버전이 배포판의 수정된 패치 릴리스(벤더 보안 공지 기준)보다 낮거나 동일하면 취약 가능성이 있으며, bnxt_en 모듈이 없으면 이 드라이버는 해당되지 않습니다.

Shell / Script
uname -r && (modinfo bnxt_en 2>/dev/null | grep -E '^(version|filename)')

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel