CVE-2025-71152 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 09.

리눅스 커널에서 다음 취약점이 해결되었습니다:

net: dsa: conduit 네트워크 장치의 참조를 적절히 추적함

문제 설명 -------------------

DSA는 conduit 네트워크 장치와 해당 kobject에 대한 참조 처리가 매우 복잡(mumbo-jumbo)하며, 슬프게도 이는 정확하지 않고 논리적이지 않습니다.

두 가지 별개의 문제가 있습니다.

1. of_find_net_device_by_node()를 사용하는 OF(Open Firmware) 경로는 conduit의 kobject에 대해 증가된 refcount를 해제하지 않습니다. 원칙적으로 OF 경로와 비-OF(non-OF) 경로는 동일한 참조 횟수가 적용된 객체를 생성해야 하며, dsa_dev_to_net_device()에는 put_device() 호출이 있지만 dsa_port_parse_of()에는 누락되어 있어 이미 의심스러운 상태입니다. 하지만 실제로 문제가 존재함을 확인할 수 있습니다. CONFIG_DEBUG_KOBJECT_RELEASE=y 구성으로 이 패치를 적용하기 "전"과 "후"에 다음 명령을 실행하면:

(conduit 드라이버를 net device eno2에서 분리) echo 0000:00:00.2 > /sys/bus/pci/drivers/fsl_enetc/unbind

패치가 적용되었을 때만 출력 차이에 나타나는 다음과 같은 줄들을 볼 수 있습니다:

kobject: 'eno2' (ffff002009a3a6b8): kobject_release, parent 0000000000000000 (delayed 1000) kobject: '109' (ffff0020099d59a0): kobject_release, parent 0000000000000000 (delayed 1000)

2. OF 또는 비-OF 경로 중 하나로 conduit 인터페이스를 찾은 후, 언제든지 해당 인터페이스가 등록 해제(unregistered)될 수 있으며, DSA는 이 경우 오래되었지만(stale) cpu_dp->conduit 포인터를 계속 유지하게 됩니다. 네트워크 장치의 기본 kobject를 보유하는 것은 실제로 큰 도움이 되지 않으며, 단순히 객체가 해제되는 것(freeing)만 방지할 뿐입니다(우리는 해당 kobject를 직접 사용할 필요가 없습니다). 네트워크 장치가 등록 해제되지 않도록 하는 데 도움이 되는 병렬 netdev 참조 메커니즘(dev_hold() 및 dev_put()))이 있습니다.

사실 우리는 commit 2f1e8ea726e9("net: dsa: link interfaces with the DSA master to get rid of lockdep warnings") 이후로 user 포트에서 이 netdev 추적기 메커니즘을 암묵적으로 사용하고 있으며, 이는 netdev_upper_dev_link()를 통해 이루어집니다. 그러나 초기 of_find_net_device_by_node() 코드와 사용자 포트 생성 시간 사이에 시간이 흐르면서 conduit가 스스로 등록 해제될 수 있고 DSA는 이를 알지 못합니다.

따라서 이러한 상황이 발생하지 않도록 rtnl_lock() 내에서 of_find_net_device_by_node()를 실행해야 하며, netdev 추적기가 참조를 확보한 후에만 잠금을 해제해야 합니다.

우리는 d

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 01. 13.

모더레이션

수락

항목

VDB-342555

EPSS

0.00120

출처

Want to know what is going to be exploited?

We predict KEV entries!