CVE-2026-64248 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 24.

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

MIPS: smp: stop_this_cpu()에서 RCU에 종료되는 CPU 보고

smp_send_stop()은 모든 보조 CPU를 stop_this_cpu()에서 대기(park) 상태로 만듭니다. 이 함수는 set_cpu_online(false)를 통해 스케줄러에게 해당 CPU가 오프라인 상태임을 표시하지만, RCU에는 이를 알리지 않습니다. 그 결과 RCU는 인터럽트가 비활성화된 채로 영원히 스피닝(spining)하는 CPU들로부터 쿼션트 상태(quiescent state)를 계속 기다리게 됩니다.

smp_send_stop() 이후에 아무도 RCU 그리스 기간(grace period)을 대기하지 않는다면 이는 무해하므로, 이 문제는 발견되지 않았습니다. 그러나 커밋 91840be8f710("irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT") 이후로, arch_irq_work_has_interrupt()가 false를 반환하는 아키텍처(즉, MIPS에서 사용하는 asm-generic 기본값)에서는 irq_work_sync()가 synchronize_rcu()를 호출합니다. 따라서 smp_send_stop() 이후 재부팅/종료 경로에서 발행된 모든 irq_work_sync()는 절대 완료될 수 없는 그리스 기간에서 차단되어 재부팅이 멈추게 됩니다:

WARNING: CPU: 0 PID: 15 at kernel/irq_work.c:144 irq_work_queue_on ... rcu: INFO: rcu_sched detected stalls on CPUs/tasks: rcu: Offline CPU 1 blocking current GP. rcu: Offline CPU 2 blocking current GP. rcu: Offline CPU 3 blocking current GP.

이 문제는 여러 Realtek MIPS 스위치 SoC(MIPS interAptiv)에서 발견되었으며, OpenWrt의 커널 버전 업그레이드(6.18.33에서 6.18.34로) 과정에서 6.18 안정화 브랜치에 대한 패치가 백포트된 후에 나타났습니다. 이 패치는 6.1까지 모두 백포트되었습니다.

인터럽트가 비활성화된 시점에 한 번만 rcutree_report_cpu_dead()를 호출하여 일반적인 CPU 핫플러그 오프라인 경로와 일치시킴으로써, RCU가 대기 중인 CPU들을 기다리는 것을 중단하고 그리스 기간이 여전히 완료될 수 있도록 합니다. MIPS는 여기에서 모든 CPU를 CPU 핫플로그 메커니즘을 거치지 않고 종료하므로, 이 보고는 다른 방식으로 발행되지 않습니다. 죽어가는 CPU를 일반적인 핫플러그 오프라인 경로 외부에서 RCU에 보고하는 것은 전례가 없는 것이 아닙니다: arm64도 cpu_die_early()에서 동일한 작업을 수행합니다. 다만 그곳에서는 MIPS에서의 기본 종료 동작과 달리, 온라인으로 진입하려다 중단되는 CPU에 대한 예외 처리입니다.

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

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-382992

EPSS

0.00000

출처

Interested in the pricing of exploits?

See the underground prices here!