🔍 CVE-2025-39947

5.5
CVSS Score
MEDIUM
2025-10-04
2026-11-05 22:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 mlx5e 드라이버에서 장치 언바인드(unbind) 시 업링크 네트워크 장치 포인터에 대한 검증이 부족하여 발생하는 취약점입니다. 장치가 제거되어 포인터가 NULL이 된 상태에서 접근을 시도할 경우 커널 패닉(Kernel Panic)이 발생할 수 있습니다.

💡 쉬운 설명

네트워크 장치가 연결 해제될 때 시스템이 해당 장치를 사용 중인지 확인하지 않아 컴퓨터가 갑자기 멈추거나 꺼질 수 있는 문제입니다. 장치가 사라졌는데도 계속 사용하려고 시도하면서 발생하는 오류입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Harden uplink netdev access against device unbind The function mlx5_uplink_netdev_get() gets the uplink netdevice pointer from mdev->mlx5e_res.uplink_netdev. However, the netdevice can be removed and its pointer cleared when unbound from the mlx5_core.eth driver. This results in a NULL pointer, causing a kernel panic. BUG: unable to handle page fault for address: 0000000000001300 at RIP: 0010:mlx5e_vport_rep_load+0x22a/0x270 [mlx5_core] Call Trace: <TASK> mlx5_esw_offloads_rep_load+0x68/0xe0 [mlx5_core] esw_offloads_enable+0x593/0x910 [mlx5_core] mlx5_eswitch_enable_locked+0x341/0x420 [mlx5_core] mlx5_devlink_eswitch_mode_set+0x17e/0x3a0 [mlx5_core] devlink_nl_eswitch_set_doit+0x60/0xd0 genl_family_rcv_msg_doit+0xe0/0x130 genl_rcv_msg+0x183/0x290 netlink_rcv_skb+0x4b/0xf0 genl_rcv+0x24/0x40 netlink_unicast+0x255/0x380 netlink_sendmsg+0x1f3/0x420 __sock_sendmsg+0x38/0x60 __sys_sendto+0x119/0x180 do_syscall_64+0x53/0x1d0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Ensure the pointer is valid before use by checking it for NULL. If it is valid, immediately call netdev_hold() to take a reference, and preventing the netdevice from being freed while it is in use.

📍 영향받는 시스템

Linux kernel (mlx5e driver component)

⚔️ 공격 벡터

로컬 공격자가 장치 언바인드(unbind)를 유도하여 커널 패닉을 일으키는 서비스 거부(DoS) 공격

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 mlx5_uplink_netdev_get() 함수의 NULL 체크 및 참조 카운트 로직을 적용해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

📊 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