CVE-2026-72409 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 15.

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

net: mvneta: 재개(resume) 시 percpu 인터럽트 다시 활성화

마벨(Marvell) MPIC 플랫폼(Armada 370/XP/38x 계열)에서 mvneta는 NAPI를 위해 percpu IRQ 비활성화/활성화 체계를 사용합니다. ISR(mvneta_percpu_isr)은 disable_percpu_irq()를 호출하여 MPIC의 per-CPU 인터럽트를 마스킹하고, 완료 시 enable_percpu_irq()를 호출하여 언마스크하는 NAPI 폴링을 스케줄합니다.

만약 NAPI 폴링이 대기 상태인 동안(ISR 내의 disable_percpu_irq와 poll 완료 시점의 enable_percpu_irq 사이) 시스템 서스펜드가 발생하면 인터럽트가 다시 활성화되지 않습니다:

1. mvneta_percpu_isr: disable_percpu_irq() + napi_schedule() => MPIC 마스킹됨, percpu_enabled cpumask 비트 클리어됨 2. NAPI 폴링이 서스펜드 진행 전에 완료되지 않음 (PREEMPT_RT의 경우 softirq가 ksoftirqd에서 실행되며 해당 스레드가 동결되므로 매우 발생하기 쉬움; 비-RT 환경에서는 softirq 처리가 ksoftirqd로 지연될 때 발생할 수 있음) 3. mvneta_stop_dev => napi_disable(): 완료 경로 없이 대기 중인 폴링을 취소함 4. suspend_device_irqs => IRQCHIP_MASK_ON_SUSPEND: MPIC 마스킹 (이미 마스킹되었지만 IRQS_SUSPENDED 기록됨) 5. 재개(Resume): mpic_resume가 irq_percpu_is_enabled() 확인 => false (1단계에서 비트 클리어됨) => 언마스크 스킵 6. mvneta_start_dev는 장치 수준의 INTR_NEW_MASK만 복원하고, MPIC per-CPU 마스크에는 영향을 주지 않음

결과: MPIC의 per-CPU 인터럽트가 영구적으로 마스킹된 상태로 남습니다. NIC은 인터럽트를 생성하지만(INTR_NEW_CAUSE != 0), CPU가 이를 수신하지 못하여 네트워크 연결이 완전히 손실됩니다.

서스펜드 전 상태와 무관하게 MPIC per-CPU 인터럽트를 강제로 언마스크하기 위해 재개 경로에서 on_each_cpu(mvneta_percpu_enable)를 호출함으로써 수정되었습니다.

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

출처

Do you need the next level of professionalism?

Upgrade your account now!