🇰🇷 한글 설명
Linux 커널의 stratix10-rsu 드라이버에서 RSU가 FSBL에서 비활성화될 때 NULL 포인터 참조 취약점이 발생한다. 드라이버 probe 함수가 실패한 채널에 대한 cleanup을 제대로 수행하지 않아 이미 해제된 메모리에 접근하는 스레드를 등록하게 되어 커널 패닉을 유발한다. 해결책은 probe 함수에서 오류 발생 시 async client를 정리하고 조기 반환하는 것이다.
💡 쉬운 설명
Linux 시스템의 특정 하드웨어 드라이버가 사용 불가능한 통신 채널에 접근하려고 해서 시스템 충돌이 발생한다. 채널이 정상 준비되지 않았을 때 드라이버 로드 시 커널이 즉시 패닉한다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
firmware: stratix10-rsu: Fix NULL pointer dereference when RSU is disabled
When the Remote System Update (RSU) isn't enabled in the First Stage
Boot Loader (FSBL), the driver encounters a NULL pointer dereference when
excute svc_normal_to_secure_thread() thread, resulting in a kernel panic:
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
Mem abort info:
...
Data abort info:
...
[0000000000000008] user address but active_mm is swapper
Internal error: Oops: 0000000096000004 [#1] SMP
Modules linked in:
CPU: 0 UID: 0 PID: 79 Comm: svc_smc_hvc_thr Not tainted 6.19.0-rc8-yocto-standard+ #59 PREEMPT
Hardware name: SoCFPGA Stratix 10 SoCDK (DT)
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : svc_normal_to_secure_thread+0x38c/0x990
lr : svc_normal_to_secure_thread+0x144/0x990
...
Call trace:
svc_normal_to_secure_thread+0x38c/0x990 (P)
kthread+0x150/0x210
ret_from_fork+0x10/0x20
Code: 97cfc113 f9400260 aa1403e1 f9400400 (f9400402)
---[ end trace 0000000000000000 ]---
The issue occurs because rsu_send_async_msg() fails when RSU is not enabled
in firmware, causing the channel to be freed via stratix10_svc_free_channel().
However, the probe function continues execution and registers
svc_normal_to_secure_thread(), which subsequently attempts to access the
already-freed channel, triggering the NULL pointer dereference.
Fix this by properly cleaning up the async client and returning early on
failure, preventing the thread from being used with an invalid channel.
📍 영향받는 시스템
SoCFPGA Stratix 10 보드 및 stratix10-rsu 드라이버가 포함된 Linux 6.19 이전 커널
⚔️ 공격 벡터
FSBL에서 RSU 비활성화 상태에서 드라이버 로드 시 NULL 포인터 참조로 커널 패닉 유발
🛡️ 대응 방법
Linux 커널을 최신 안정화 버전으로 업데이트하거나 CVE-2026-43410 패치를 적용
🔧 검증 코드
커널 버전이 6.19 이상인지 확인하고, stratix10 드라이버가 로드되어 있으면 해당 시스템이 영향을 받을 수 있으므로 커널 업데이트 필요
uname -r && lsmod | grep stratix10 && grep -r 'stratix10' /lib/modules/$(uname -r)/kernel/ 2>/dev/null | head -1