🔍 CVE-2026-80562

0.0
CVSS Score
UNKNOWN
2026-08-26
2026-08-27 13:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 gpio: ml-ioh 드라이버에서 레지스터 잠금 메커니즘이 적절하지 않아 발생하는 문제입니다. PREEMPT_RT 환경에서 일반 spinlock_t를 사용할 경우 잠들 수 없는 컨텍스트에서 수면 가능한 잠금을 시도하게 되어 시스템 불안정을 초래할 수 있으며, 이를 raw_spinlock_t로 변경하여 해결했습니다.

💡 쉬운 설명

컴퓨터의 핵심 부품을 제어하는 규칙이 특정 환경에서 충돌을 일으켜 시스템이 멈출 수 있는 오류입니다. 이 규칙을 더 엄격하고 안전한 방식으로 수정하여 문제를 해결했습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: gpio: ml-ioh: use raw_spinlock_t for the register lock ioh_irq_type() is registered as the irq_chip .irq_set_type callback and takes chip->spinlock with spin_lock_irqsave(). This callback is reached from __setup_irq() -> __irq_set_trigger() -> chip->irq_set_type() while the caller holds desc->lock, a raw_spinlock_t, with hardirqs disabled. That context is not sleepable, but on PREEMPT_RT a regular spinlock_t is an rtmutex-backed sleeping lock, so acquiring it there is invalid. ioh_irq_enable() and ioh_irq_disable() take the same lock from the .irq_enable/.irq_disable callbacks, which are likewise invoked with desc->lock held. Convert the register lock to raw_spinlock_t. The same lock also serializes the GPIO direction/value callbacks and the suspend/resume register save/restore, and those critical sections only perform short sequences of MMIO register accesses (ioread32()/iowrite32()); the .irq_set_type callback additionally emits a dev_warn() on an unsupported type. None of these are sleepable operations, so keeping this register lock non-sleeping is appropriate for the irqchip callbacks and does not change the GPIO-side locking contract. This is the same fix as commit a02b8950d619 ("gpio: pch: use raw_spinlock_t for the register lock"); this driver shares the same structure as gpio-pch.

📍 영향받는 시스템

Linux kernel (ml-ioh GPIO driver 사용 시스템, 특히 PREEMPT_RT 커널 적용 환경)

⚔️ 공격 벡터

직접적인 공격 방법은 없으며, 특정 조건에서 시스템 충돌(Kernel Panic)을 유발할 수 있는 로직 결함입니다.

🛡️ 대응 방법

Linux 커널을 최신 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

현재 커널 버전과 PREEMPT_RT 설정 활성화 여부를 확인하여 해당 취약점 영향 가능성을 판단합니다.

Shell / Script
uname -a && grep -i 'PREEMPT_RT' /proc/config.gz 2>/dev/null || zgrep -i 'CONFIG_PREEMPT_RT' /proc/config*

💻 영향받는 소프트웨어

Linux Kernel