🔍 CVE-2026-53158

5.5
CVSS Score
MEDIUM
2026-06-25
2026-07-07 18:51
✅ 완료

🇰🇷 한글 설명

Linux 커널의 fastrpc 모듈에서 rpmsg 콜백 함수가 초기화되지 않은 상태에서 호출될 때 NULL 포인터 역참조가 발생할 수 있는 취약점입니다. DSP가 fastrpc_rpmsg_probe() 초기화가 완료되기 전에 glink 메시지를 보내면 커널 패닉이 발생할 수 있습니다.

💡 쉬운 설명

시스템이 부팅될 때 특정 부품이 준비되기도 전에 신호를 보내면, 컴퓨터의 핵심 운영체제가 길을 잃고 멈춰버리는 문제입니다. 이로 인해 시스템이 갑자기 재부팅되거나 작동을 멈출 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: misc: fastrpc: Fix NULL pointer dereference in rpmsg callback A NULL pointer dereference was observed on Hawi at boot when the DSP sends a glink message before fastrpc_rpmsg_probe() has completed initialization: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000178 pc : _raw_spin_lock_irqsave+0x34/0x8c lr : fastrpc_rpmsg_callback+0x3c/0xcc [fastrpc] ... Call trace: _raw_spin_lock_irqsave+0x34/0x8c (P) fastrpc_rpmsg_callback+0x3c/0xcc [fastrpc] qcom_glink_native_rx+0x538/0x6a4 qcom_glink_smem_intr+0x14/0x24 [qcom_glink_smem] The faulting address 0x178 corresponds to the lock variable inside struct fastrpc_channel_ctx, confirming that cctx is NULL when fastrpc_rpmsg_callback() attempts to take the spinlock. There are two issues here. First, dev_set_drvdata() is called before spin_lock_init() and idr_init(), leaving a window where the callback can retrieve a valid cctx pointer but operate on an uninitialized spinlock. Second, the rpmsg channel becomes live as soon as the driver is bound, so fastrpc_rpmsg_callback() can fire before dev_set_drvdata() is called at all, resulting in dev_get_drvdata() returning NULL. Fix both issues by moving all cctx initialization ahead of dev_set_drvdata() so the structure is fully initialized before it becomes visible to the callback, and add a NULL check in fastrpc_rpmsg_callback() as a guard against any remaining window.

📍 영향받는 시스템

Linux kernel (fastrpc module used in Qualcomm platforms)

⚔️ 공격 벡터

부팅 과정 중 특정 하드웨어(DSP)로부터의 조기 메시지 전송을 통한 로컬 서비스 거부(DoS)

🛡️ 대응 방법

cctx 초기화 순서를 dev_set_drvdata() 이전으로 변경하고, 콜백 함수 내에 NULL 체크 로직을 추가한 커널 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 확인

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