🔍 CVE-2025-38720

5.5
CVSS Score
MEDIUM
2025-09-04
2026-10-19 21:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 hibmcge 네트워크 드라이버에서 rtnl_lock 획득 과정 중 데드락(Deadlock)이 발생하는 취약점이 발견되었습니다. PCI 버스 리셋 과정에서 여러 장치가 순차적으로 동일한 락을 요청하면서 시스템이 멈출 수 있는 문제입니다. 이를 해결하기 위해 리셋 과정에서 rtnl_lock 사용을 제거하고 상태 관리 로직을 조정하였습니다.

💡 쉬운 설명

컴퓨터의 네트워크 장치가 오류를 복구하려고 할 때, 두 장치가 서로의 자원을 기다리며 시스템이 멈춰버리는 현상이 발생할 수 있습니다. 이 문제는 장치가 복구되는 방식의 순서를 조정하여 시스템이 멈추지 않도록 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: hibmcge: fix rtnl deadlock issue Currently, the hibmcge netdev acquires the rtnl_lock in pci_error_handlers.reset_prepare() and releases it in pci_error_handlers.reset_done(). However, in the PCI framework: pci_reset_bus - __pci_reset_slot - pci_slot_save_and_disable_locked - pci_dev_save_and_disable - err_handler->reset_prepare(dev); In pci_slot_save_and_disable_locked(): list_for_each_entry(dev, &slot->bus->devices, bus_list) { if (!dev->slot || dev->slot!= slot) continue; pci_dev_save_and_disable(dev); if (dev->subordinate) pci_bus_save_and_disable_locked(dev->subordinate); } This will iterate through all devices under the current bus and execute err_handler->reset_prepare(), causing two devices of the hibmcge driver to sequentially request the rtnl_lock, leading to a deadlock. Since the driver now executes netif_device_detach() before the reset process, it will not concurrently with other netdev APIs, so there is no need to hold the rtnl_lock now. Therefore, this patch removes the rtnl_lock during the reset process and adjusts the position of HBG_NIC_STATE_RESETTING to ensure that multiple resets are not executed concurrently.

📍 영향받는 시스템

hibmcge 드라이버를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

PCI 장치 오류 발생을 유도하여 시스템 데드락 유발 (로컬/물리적 접근 필요)

🛡️ 대응 방법

Linux 커널을 최신 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인

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