🔍 CVE-2023-54220

7.8
CVSS Score
HIGH
2025-12-30
2026-10-28 19:10
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 8250 시리얼 드라이버에서 하드웨어 특정 드라이버를 언로드할 때 커널 페이지 오류(Oops)가 발생하는 취약점입니다. 드라이버 언로드 후 약 10초 뒤에 uart_change_pm() 함수 호출 과정에서 잘못된 메모리 주소에 접근하여 시스템 불안정을 초래할 수 있습니다.

💡 쉬운 설명

컴퓨터의 시리얼 통신 장치 드라이버를 제거할 때, 시스템이 이미 사라진 메모리 주소를 참조하려고 시도하여 오류가 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 오류 메시지가 나타날 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: serial: 8250: Fix oops for port->pm on uart_change_pm() Unloading a hardware specific 8250 driver can produce error "Unable to handle kernel paging request at virtual address" about ten seconds after unloading the driver. This happens on uart_hangup() calling uart_change_pm(). Turns out commit 04e82793f068 ("serial: 8250: Reinit port->pm on port specific driver unbind") was only a partial fix. If the hardware specific driver has initialized port->pm function, we need to clear port->pm too. Just reinitializing port->ops does not do this. Otherwise serial8250_pm() will call port->pm() instead of serial8250_do_pm().

📍 영향받는 시스템

8250 시리얼 드라이버를 사용하는 리눅스 커널 버전

⚔️ 공격 벡터

로컬 권한을 가진 사용자가 특정 하드웨어 드라이버를 언로드(Unload)하는 동작을 통해 유도 가능

🛡️ 대응 방법

커널 패치를 적용하여 uart_change_pm() 호출 시 port->pm을 적절히 초기화하도록 업데이트

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel