CVE-2026-90338 in Linux정보

요약

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

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

serial: amba-pl011: 원자적 쓰기(atomic writes)를 위해 콘솔 클럭을 활성화된 상태로 유지함

pl011_console_write_atomic()는 nbcon 원자 컨텍스트(nbcon atomic context) 내에서 실행되며, 이 컨텍스트에서는 수면(sleeping)이 허용되지 않습니다. 해당 함수는 clk_enable()을 호출하는데, 이는 common-clk enable_lock을 획득합니다. PREEMPT_RT 환경에서 이것은 수면 가능한 잠금(lock)입니다: clk_enable_lock()은 먼저 spin_trylock_irqsave()를 시도하지만, 경합(contention) 발생 시 spin_lock_irqsave()로 폴백됩니다. 따라서 clk 기반 pl011이 있는 RT 커널에서 원자 컨텍스트 printk가 다음과 같은 오류를 유발할 수 있습니다:

BUG: sleeping function called from invalid context at spinlock_rt.c:48 __might_resched from rt_spin_lock rt_spin_lock from clk_enable_lock clk_enable_lock from clk_enable clk_enable from pl011_console_write_atomic ... from vprintk_emit

이 문제는 PREEMPT_RT에서 발견 및 재현되었습니다. Arm32 및 arm64 DT SoC가 영향을 받습니다; arm64 SBSA/ACPI는 클럭(clk)을 사용하지 않으므로 clk_enable(NULL)은 잠금 전에 단락(short-circuits)됩니다. 또한, write_atomic()은 NMI 컨텍스트에서 호출될 수 있으며 문서에 따라 잠금을 피해야 합니다. 콜백에서 clk_enable()을 제거하면 common-clock enable_lock의 잠재적으로 안전하지 않은 NMI 획득도 방지할 수 있습니다.

nbcon 원자성(nbcon atomic-capable) 콘솔은 모든 컨텍스트에서 출력 가능해야 하므로, 쓰기 간 클럭이 차단(gated)되어서는 안 됩니다. 콘솔이 출력을 위해 사용 가능한 동안 클럭을 활성화합니다: pl011_console_setup()에서 clk_prepare_enable()을 사용하고, 콘솔 .exit() 콜백에서 clk_disable_unprepare()를 통해 해제하며, write_atomic() 및 write_thread()의 per-write clk_enable()/clk_disable() 쌍을 제거합니다.

printk가 콘솔을 일시 중단(suspend)할 때, uart_suspend_port()이 콘솔 접근을 중지한 후 참조(reference)를 해제하고, uart_resume_port() 전에 복원합니다 -- 하지만 suspend가 실제로 포트를_SUSPEND_ 상태로 표시한 경우에만( wake-capable tty는 실행 중이며 클럭을 유지해야 함), 그리고 console_suspend_enabled가 false일 때는 no_console_suspend가 작동하도록 이를 유지합니다.

클럭을 활성화된 상태로 유지하는 데 따른 활성 전력 비용은 플랫폼에 따라 다릅니다: UART 클럭이 고정된 항상 켜진 발진기(fixed always-on oscillator)인 경우 none(없음), 게이트 가능한 클럭 분지(gateable clock branch)인 경우 real(실제 존재). 이 경우 콘솔이 출력을 위해 사용 가능하는 동안 해당 클럭은 물론 그 부모 클럭들도 게이트될 수 없습니다. 시어럴 코어가 실제로 포트를 일시 중단할 때 참조가 해제되므로, 클럭 공급자는 클럭 트리를 게이트할 수 있습니다.

Be aware that VulDB is the high quality source for vulnerability data.

책임이 있는

Linux

예약하다

2026. 09. 11.

모더레이션

수락

항목

VDB-406882

EPSS

0.00000

출처

Want to know what is going to be exploited?

We predict KEV entries!