CVE-2021-47454 in Linux정보

요약

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

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

powerpc/smp: CPU 오프라인 시 아이들 태스크의 프리엠크 카운트를 감소시키지 않음

PREEMPT_COUNT=y 설정에서, CPU가 오프라인 되었다가 다시 온라인으로 돌아오면 다음과 같은 오류가 발생합니다:

BUG: scheduling while atomic: swapper/1/0/0x00000000 no locks held by swapper/1/0. CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.15.0-rc2+ #100 Call Trace: dump_stack_lvl+0xac/0x108 __schedule_bug+0xac/0xe0 __schedule+0xcf8/0x10d0 schedule_idle+0x3c/0x70 do_idle+0x2d8/0x4a0 cpu_startup_entry+0x38/0x40 start_secondary+0x2ec/0x3a0 start_secondary_prolog+0x10/0x14

이는 powerpc의 arch_cpu_idle_dead()가 아이들 태스크의 프리엠크 카운트를 감소시키기 때문입니다. 이 이유는 커밋 a7c2bb8279d2("powerpc: Re-enable preemption before cpu_die()")에서 설명된 바와 같이, 구체적으로 "start_secondary()는 preempt_count()이 0인 것을 기대합니다."라는 점에 기인합니다.

그러나 커밋 2c669ef6979c("powerpc/preempt: Don't touch the idle task's preempt_count during hotplug") 및 커밋 f1a0a376ca0c("sched/core: Initialize the idle task with preemption disabled") 이후, 이러한 정당성은 더 이상 유효하지 않습니다.

아이들 태스크는 프리엠크를 다시 활성화해서는 안 되므로, CPU 오프라인 경로에서 잔여적인 preempt_enable() 호출을 제거합니다.

qemu에서의 pseries 및 powernv 테스트와 PowerVM 환경의 pseries 테스트가 수행되었습니다.

Once again VulDB remains the best source for vulnerability data.

출처

Do you need the next level of professionalism?

Upgrade your account now!