🔍 CVE-2023-53713

7.8
CVSS Score
HIGH
2025-10-22
2026-10-28 19:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 arm64 SME(Scalable Matrix Extension) 구현 중, 스트리밍 SVE 모드에서 FFR 컨텍스트 필드를 초기화할 때 발생하는 메모리 오염 취약점입니다. 기존의 8바이트 고정 저장 방식이 SME 벡터 길이와 일치하지 않을 경우, 구조체 이후의 메모리를 손상시키거나 kfence splat을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터의 특수 계산 기능을 사용할 때 데이터를 저장하는 과정에서, 정해진 크기보다 더 많은 데이터를 써버려 옆에 있는 중요한 정보를 망가뜨리는 문제입니다. 이로 인해 시스템이 불안정해지거나 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: arm64: sme: Use STR P to clear FFR context field in streaming SVE mode The FFR is a predicate register which can vary between 16 and 256 bits in size depending upon the configured vector length. When saving the SVE state in streaming SVE mode, the FFR register is inaccessible and so commit 9f5848665788 ("arm64/sve: Make access to FFR optional") simply clears the FFR field of the in-memory context structure. Unfortunately, it achieves this using an unconditional 8-byte store and so if the SME vector length is anything other than 64 bytes in size we will either fail to clear the entire field or, worse, we will corrupt memory immediately following the structure. This has led to intermittent kfence splats in CI [1] and can trigger kmalloc Redzone corruption messages when running the 'fp-stress' kselftest: | ============================================================================= | BUG kmalloc-1k (Not tainted): kmalloc Redzone overwritten | ----------------------------------------------------------------------------- | | 0xffff000809bf1e22-0xffff000809bf1e27 @offset=7714. First byte 0x0 instead of 0xcc | Allocated in do_sme_acc+0x9c/0x220 age=2613 cpu=1 pid=531 | __kmalloc+0x8c/0xcc | do_sme_acc+0x9c/0x220 | ... Replace the 8-byte store with a store of a predicate register which has been zero-initialised with PFALSE, ensuring that the entire field is cleared in memory. [1] https://lore.kernel.org/r/CA+G9fYtU7HsV0R0dp4XEH5xXHSJFw8KyDf5VQrLLfMxWfxQkag@mail.gmail.com

📍 영향받는 시스템

SME/SVE를 지원하는 arm64 아키텍처 기반의 Linux 커널

⚔️ 공격 벡터

로컬 권한을 가진 공격자가 특수하게 구성된 SME/SVE 명령어를 실행하여 커널 메모리 오염 유도

🛡️ 대응 방법

FFR 필드 초기화 시 8바이트 저장 대신 PFALSE로 초기화된 술어 레지스터(predicate register)를 사용하는 최신 커널 패치 적용

🔧 검증 코드

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

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel