🔍 CVE-2022-50426

5.5
CVSS Score
MEDIUM
2025-10-01
2026-11-05 21:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 remoteproc imx_dsp_rproc 드라이버에서 workqueue가 remoteproc 중지 후에 늦게 실행되면서, 이미 해제된 rpmsg 디바이스와 엔드포인트 리소스에 접근해 커널 덤프가 발생하는 문제입니다. 해당 작업 함수에 뮤텍스 보호를 추가하고, 실행 상태가 아니면 인터럽트 처리를 건너뛰도록 수정되었습니다.

💡 쉬운 설명

장치를 끄는 도중에 뒤늦게 실행된 작업이 이미 정리된 자원에 접근해 시스템이 비정상 종료(커널 패닉)될 수 있는 결함입니다. 수정 후에는 장치가 동작 중이 아니면 해당 작업을 건너뛰어 이 문제를 막습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: remoteproc: imx_dsp_rproc: Add mutex protection for workqueue The workqueue may execute late even after remoteproc is stopped or stopping, some resources (rpmsg device and endpoint) have been released in rproc_stop_subdevices(), then rproc_vq_interrupt() accessing these resources will cause kennel dump. Call trace: virtqueue_add_split+0x1ac/0x560 virtqueue_add_inbuf+0x4c/0x60 rpmsg_recv_done+0x15c/0x294 vring_interrupt+0x6c/0xa4 rproc_vq_interrupt+0x30/0x50 imx_dsp_rproc_vq_work+0x24/0x40 [imx_dsp_rproc] process_one_work+0x1d0/0x354 worker_thread+0x13c/0x470 kthread+0x154/0x160 ret_from_fork+0x10/0x20 Add mutex protection in imx_dsp_rproc_vq_work(), if the state is not running, then just skip calling rproc_vq_interrupt(). Also the flush workqueue operation can't be added in rproc stop for the same reason. The call sequence is rproc_shutdown -> rproc_stop ->rproc_stop_subdevices ->rproc->ops->stop() ->imx_dsp_rproc_stop ->flush_work -> rproc_vq_interrupt The resource needed by rproc_vq_interrupt has been released in rproc_stop_subdevices, so flush_work is not safe to be called in imx_dsp_rproc_stop.

📍 영향받는 시스템

NXP i.MX 기반 DSP를 사용하는 Linux 커널의 imx_dsp_rproc 드라이버 탑재 시스템 (수정 이전 커널 버전)

⚔️ 공격 벡터

로컬 또는 원격 공격자가 직접 악용하기보다 장치 종료 타이밍에 발생하는 레이스 컨디션으로 인해 서비스 거부(커널 크래시)가 유발되는 형태입니다.

🛡️ 대응 방법

배포판 또는 커널 제공사의 최신 보안 업데이트를 적용하여 커널을 수정된 버전으로 업그레이드합니다.

🔧 검증 코드

출력된 커널 버전이 수정 패치가 포함된 버전인지 배포판 보안 공지와 대조하고, imx_dsp_rproc 모듈이 로드되어 있는지 확인합니다. 모듈이 보이지 않으면 해당 드라이버가 사용되지 않는 시스템이므로 영향이 없습니다.

Shell / Script
uname -r && grep -i imx_dsp_rproc /proc/modules 2>/dev/null

📊 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