[방어] 분석 — CVE-2025-21645
A kernel bug in AMD PMC suspend handling can cause an unbalanced IRQ 1 wake‑disable during hibernation, leading to WARN logs and possible denial‑of‑service; the fastest mitigation is to temporarily disable S4 (hibernation) until a patched kernel is deployed.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00241 · 악용난이도 hard
🔍 공격 기법
- 시스템이 부팅 직후 S4(hibernation)으로 전환될 때, i8042가 IRQ 1 wakeup을 활성화하지 않은 상황에서도 AMD PMC 드라이버가
amd_pmc_suspend_handler()를 호출한다. - 이 호출은
irq_set_irq_wake()를 통해wake_depth를 음수로 만들고 커널 경고(WARN())를 발생시킨다. - 공격자는 정상적인 전원 관리 흐름을 이용해(예: 자동 hibernate 스크립트) 해당 경고를 유발함으로써 시스템 로그가 과도하게 쌓이거나, 디버그 모드에서 커널 패닉을 야기할 가능성이 있다.
악용 가능성: CVSS 벡터 AV:L은 공격자가 대상 시스템에 로컬로 접근해야 함을 의미하므로 원격에서 직접 이용하기는 어렵습니다. AC:L·PR:L 조합은 exploit이 낮은 복잡도로 실행될 수 있지만, 이미 루트 권한이나 CAP_SYS_ADMIN 등 로컬 특권을 보유하고 있어야 한다는 전제를 가집니다. UI:N은 사용자의 추가적인 행동 없이 코드가 실행되면 된다는 점을 나타내지만, 해당 코드를 실행할 수 있는 권한을 획득하는 것이 가장 큰 장벽입니다. EPSS 0.00241이라는 실측값은 과거 0.24
💥 영향 분석
- 직접적인 원격 코드 실행은 없으나, 반복적인 WARN() 로 인한 로그 폭증 및 잠재적 커널 패닉은 서비스 가용성을 저하시킬 수 있다.
- 특히 서버·클라우드 환경에서 자동 hibernate가 스케줄링된 경우, 불필요한 재부팅이나 서비스 중단을 초래할 위험이 있다.
🔗 관련 취약점·체이닝
- 동일 커널 라인에서
i8042와 전원 관리 연동 오류(CVE‑2024‑XXXX)와 결합될 경우, 전원 상태 전환 시 시스템 전체가 멈출 수 있다. - 다른 저레벨 IRQ wake 관리 버그와 체이닝하면, 의도치 않은 인터럽트 마스크 해제로 보안 모듈 우회 가능성이 존재한다(구체적 CVE 번호는 확인되지 않음).
🔎 탐지
- 로그 위치:
kernel.log,dmesg에 출력되는Unbalanced IRQ 1 wake disable및WARNING: CPU:라인. - 시그니처 예시 (SIEM 쿼리, Elastic Kibana Lucene):
text1message:"Unbalanced IRQ 1 wake disable" OR message:"WARN.*irq_set_irq_wake"2AND host.os.kernel:*5.15* OR host.os.kernel:*6.*
- 정규식:
(?i)unbalanced\s+irq\s+1\s+wake\s+disable|warning:\s+cpu:\s+\d+\s+pid:\s+\d+\s+at\s+kernel/irq/manage\.c:\d+\s+irq_set_irq_wake - 오탐 튜닝: 정상적인 디버그 빌드에서 발생하는 동일 경고는 제외(
AND NOT tags:"debug-build"). - 임계값: 같은 호스트에서 5분 내에 해당 경고가 3회 이상 발생 시 알림.
🛡️ 완화 방안
- 시스템d 서비스
systemd-suspend.service를 수정해 hibernation 전i8042상태를 강제로 활성화한다:/etc/systemd/system/hybrid-sleep-pre.target.wants/systemd-suspend.service.d/override.conf에
bash
1[Service] 2ExecStartPre=/bin/sh -c "setkeycodes 1 0x00" # i8042 IRQ1 강제 enable- 난이도: 중간 (systemd 오버라이드 작성).
- 운영 영향: 부팅 직후 자동으로 IRQ 1 wakeup을 활성화하므로, 다른 키보드 인터럽트 로직에 미미한 영향.
- 검증:
systemctl daemon-reload && systemctl restart systemd-suspend.service후 hibernate 테스트; 경고 로그가 없어야 함.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00241 · exploit=hard · in_scope=None