🇰🇷 한글 설명
Linux 커널의 remoteproc imx_rproc에서 로드된 resource table 감지 오류 발생. 디바이스 트리에 설정이 있어도 현재 펌웨어가 resource table을 제공하지 않으면 잘못된 감지로 인해 펌웨어 시작 시 시스템이 크래시됩니다.
💡 쉬운 설명
Linux 커널의 임베디드 프로세서 제어 부분이 필요한 설정 파일 없이도 파일이 있다고 착각하는 버그입니다. 이로 인해 펌웨어 실행 시 시스템이 예기치 않게 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
remoteproc: imx_rproc: Fix invalid loaded resource table detection
imx_rproc_elf_find_loaded_rsc_table() may incorrectly report a loaded
resource table even when the current firmware does not provide one.
When the device tree contains a "rsc-table" entry, priv->rsc_table is
non-NULL and denotes where a resource table would be located if one is
present in memory. However, when the current firmware has no resource
table, rproc->table_ptr is NULL. The function still returns
priv->rsc_table, and the remoteproc core interprets this as a valid loaded
resource table.
Fix this by returning NULL from imx_rproc_elf_find_loaded_rsc_table() when
there is no resource table for the current firmware (i.e. when
rproc->table_ptr is NULL). This aligns the function's semantics with the
remoteproc core: a loaded resource table is only reported when a valid
table_ptr exists.
With this change, starting firmware without a resource table no longer
triggers a crash.
📍 영향받는 시스템
Linux kernel (remoteproc/imx_rproc 지원, ARM/NXP 기반 임베디드 시스템)
⚔️ 공격 벡터
resource table 없는 펌웨어를 실행하여 커널 패닉 유도 (로컬 서비스 거부)
🛡️ 대응 방법
영향받은 Linux 커널을 최신 버전으로 업데이트하여 imx_rproc_elf_find_loaded_rsc_table() 함수 수정 적용
🔧 검증 코드
remoteproc 관련 오류나 crash 메시지가 없으면 정상이며, 'loaded resource table' 또는 'rproc.*initialized' 메시지가 보이면 안전한 상태입니다.
dmesg | grep -i 'remoteproc\|rproc' | tail -20