🔍 CVE-2025-71080

7.5
CVSS Score
HIGH
2026-01-13
2026-07-30 06:24
✅ 완료

🇰🇷 한글 설명

PREEMPT_RT 커널 환경에서 ipv6의 rt6_get_pcpu_route() 함수 실행 중 선점(preemption)이 발생할 경우, 다른 태스크가 동일한 CPU에 경로를 설치하여 race condition이 발생할 수 있습니다. 이로 인해 cmpxchg() 작업이 실패하며 커널의 BUG_ON()이 트리거되어 시스템이 중단될 수 있는 취약점입니다.

💡 쉬운 설명

리눅스 커널의 특정 설정에서 네트워크 경로를 처리하는 도중, 다른 작업이 끼어들어 충돌을 일으키는 문제입니다. 이 충돌이 발생하면 컴퓨터 시스템이 예기치 않게 멈추거나 오류를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ipv6: fix a BUG in rt6_get_pcpu_route() under PREEMPT_RT On PREEMPT_RT kernels, after rt6_get_pcpu_route() returns NULL, the current task can be preempted. Another task running on the same CPU may then execute rt6_make_pcpu_route() and successfully install a pcpu_rt entry. When the first task resumes execution, its cmpxchg() in rt6_make_pcpu_route() will fail because rt6i_pcpu is no longer NULL, triggering the BUG_ON(prev). It's easy to reproduce it by adding mdelay() after rt6_get_pcpu_route(). Using preempt_disable/enable is not appropriate here because ip6_rt_pcpu_alloc() may sleep. Fix this by handling the cmpxchg() failure gracefully on PREEMPT_RT: free our allocation and return the existing pcpu_rt installed by another task. The BUG_ON is replaced by WARN_ON_ONCE for non-PREEMPT_RT kernels where such races should not occur.

📍 영향받는 시스템

PREEMPT_RT 패치가 적용된 Linux Kernel

⚔️ 공격 벡터

로컬 환경에서 특정 네트워크 트래픽을 유도하여 커널의 레이스 컨디션(Race Condition) 유발

🛡️ 대응 방법

커널 패치를 통해 cmpxchg() 실패 시 오류를 발생시키는 대신 기존 경로를 반환하도록 업데이트

🔧 검증 코드

출력 결과에 'PREEMPT_RT'가 포함되어 있다면 해당 취약점이 발생할 수 있는 커널 환경임을 의미합니다.

Shell / Script
uname -a | grep -i 'PREEMPT_RT'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel