🇰🇷 한글 설명
Linux 커널의 arm_scmi 펌웨어 구성 요소에서 채널 설정이 완료되기 전에 콜백이 실행될 수 있는 취약점이 발견되었습니다. 이로 인해 초기화 과정 중 인터럽트가 발생할 경우 NULL 포인터를 참조하여 시스템 오류(Kernel Panic)가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 부품들이 서로 대화하기 위한 준비가 채 끝나기도 전에 대화 신호가 먼저 들어올 수 있는 문제입니다. 이 경우 컴퓨터가 준비되지 않은 상태에서 잘못된 정보를 읽으려다 시스템이 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
firmware: arm_scmi: Publish channel state before callbacks
Transport setup can enable callbacks before the setup routine returns.
mailbox_chan_setup() registers the mailbox client with
mbox_request_channel(), and the mailbox controller startup path can enable
interrupt delivery before SCMI mailbox channel state has been published.
Similarly, smc_chan_setup() requests the optional A2P completion IRQ before
the SMC transport has made its cinfo pointer visible.
If a pending or spurious callback fires in those windows, the transport RX
callback can dereference a NULL transport cinfo pointer. Publishing only
the transport-private pointer is not sufficient either: an early callback
can enter the SCMI core before scmi_chan_setup() has assigned
cinfo->handle.
The core derives scmi_info from cinfo->handle in the RX path, so a NULL
handle can still fault even when the transport-private cinfo is valid.
Assign cinfo->handle before invoking the transport setup callback. Publish
the mailbox and SMC transport-private channel state before requesting the
mailbox channels or IRQ, and clear the early-published pointers again on
setup failure. Also unwind mailbox setup devres resources on failure so an
optional RX setup error that is ignored by the core does not leave stale
transport state behind.
📍 영향받는 시스템
Linux kernel (arm_scmi firmware component)
⚔️ 공격 벡터
하드웨어 인터럽트 또는 스퓨리어스(spurious) 콜백을 유도하여 커널 패닉 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.