🔍 CVE-2026-53197

5.5
CVSS Score
MEDIUM
2026-06-25
2026-07-06 12:33
✅ 완료

🇰🇷 한글 설명

Linux 커널의 xfrm:iptfs 구성 요소에서 iptfs_destroy_state() 함수 호출 시 스핀락을 보유한 상태로 hrtimer_cancel()을 호출하여 발생하는 ABBA 데드락 취약점입니다. SMP 시스템에서 타이머 콜백과 함수 호출 간의 상호 잠금 대기 상태가 형성되어 시스템이 멈출 수 있습니다.

💡 쉬운 설명

컴퓨터의 두 작업이 서로 상대방이 가진 열쇠를 기다리며 무한히 대기하는 상태가 되어 시스템이 멈추는 문제입니다. 타이머를 끄는 순서를 조정하여 이 엉킴 현상을 해결했습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: xfrm: iptfs: fix ABBA deadlock in iptfs_destroy_state() iptfs_destroy_state() calls hrtimer_cancel() while holding a spinlock that the timer callback also acquires, leading to an ABBA deadlock on SMP systems. For the output timer (iptfs_timer): - iptfs_destroy_state() holds x->lock, calls hrtimer_cancel() - iptfs_delay_timer() callback takes x->lock For the drop timer (drop_timer): - iptfs_destroy_state() holds drop_lock, calls hrtimer_cancel() - iptfs_drop_timer() callback takes drop_lock Both timers use HRTIMER_MODE_REL_SOFT, so their callbacks run in softirq context. When hrtimer_cancel() is called for a soft timer that is currently executing on another CPU, hrtimer_cancel_wait_running() spins on softirq_expiry_lock -- the same lock held by the softirq running the callback. If the callback is blocked waiting for the spinlock held by the caller of hrtimer_cancel(), a circular dependency forms: CPU 0: holds lock_A -> waits for softirq_expiry_lock CPU 1: holds softirq_expiry_lock -> waits for lock_A Fix by calling hrtimer_cancel() before acquiring the respective locks. hrtimer_cancel() is safe to call without holding any lock and will wait for any in-progress callback to complete. For the output timer, the lock is still acquired afterwards to drain the packet queue. For the drop timer, the lock/unlock pair is removed entirely since it only existed to serialize with the timer callback, which hrtimer_cancel() already guarantees. Found by source code audit.

📍 영향받는 시스템

Linux kernel (xfrm:iptfs 모듈 사용 시스템)

⚔️ 공격 벡터

로컬 시스템에서 특정 네트워크 상태(xfrm/iptfs)를 유도하여 커널 데드락 발생 가능

🛡️ 대응 방법

해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 패치가 적용된 배포판의 수정 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel