🇰🇷 한글 설명
Linux 커널의 jsm 시리얼 드라이버에서 jsm_uart_port_init 과정 중 장치가 설정되지 않은 상태로 serial_base_ctrl_add가 호출되어 NULL 포인터 역참조가 발생하는 취약점입니다. 이로 인해 커널 크래시가 발생할 수 있습니다. Digi Neo PCIe 8 포트 카드 환경에서 확인되었습니다.
💡 쉬운 설명
특정 시리얼 포트 카드 드라이버를 불러올 때 필요한 설정이 빠져 있어 리눅스 커널이 비정상 종료될 수 있습니다. 이 문제는 주로 해당 카드를 사용하는 시스템의 안정성에 영향을 줍니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
serial: jsm: fix NPE during jsm_uart_port_init
No device was set which caused serial_base_ctrl_add to crash.
BUG: kernel NULL pointer dereference, address: 0000000000000050
Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 16 UID: 0 PID: 368 Comm: (udev-worker) Not tainted 6.12.25-amd64 #1 Debian 6.12.25-1
RIP: 0010:serial_base_ctrl_add+0x96/0x120
Call Trace:
<TASK>
serial_core_register_port+0x1a0/0x580
? __setup_irq+0x39c/0x660
? __kmalloc_cache_noprof+0x111/0x310
jsm_uart_port_init+0xe8/0x180 [jsm]
jsm_probe_one+0x1f4/0x410 [jsm]
local_pci_probe+0x42/0x90
pci_device_probe+0x22f/0x270
really_probe+0xdb/0x340
? pm_runtime_barrier+0x54/0x90
? __pfx___driver_attach+0x10/0x10
__driver_probe_device+0x78/0x110
driver_probe_device+0x1f/0xa0
__driver_attach+0xba/0x1c0
bus_for_each_dev+0x8c/0xe0
bus_add_driver+0x112/0x1f0
driver_register+0x72/0xd0
jsm_init_module+0x36/0xff0 [jsm]
? __pfx_jsm_init_module+0x10/0x10 [jsm]
do_one_initcall+0x58/0x310
do_init_module+0x60/0x230
Tested with Digi Neo PCIe 8 port card.
📍 영향받는 시스템
jsm 드라이버를 사용하는 Linux 커널 (Digi Neo PCIe 등 jsm 기반 시리얼 카드 장착 시스템, 수정 전 커널 버전)
⚔️ 공격 벡터
로컬 또는 하드웨어 환경에서 해당 카드가 장착된 상태로 드라이버가 로드될 때 발생하며, 원격 공격 경로는 확인되지 않습니다.
🛡️ 대응 방법
배포판 제공 최신 보안 업데이트 또는 해당 수정이 포함된 Linux 커널 버전으로 업그레이드합니다.
🔧 검증 코드
출력된 커널 버전이 수정이 반영된 버전 이상인지 확인하고, jsm 모듈이 로드되어 있지 않다면 해당 드라이버로 인한 영향은 없습니다.
uname -r; lsmod 2>/dev/null | grep -w jsm; dpkg -l linux-image-$(uname -r) 2>/dev/null | grep -E '^ii'