🇰🇷 한글 설명
Linux 커널의 arm64/sme 구성 요소에서 SME 벡터 길이를 변경할 때 SVE 상태를 재할당하는 과정 중 메모리 손상이 발생할 수 있는 취약점입니다. 새로운 벡터 길이를 task struct에 기록하기 전에 메모리 재할당이 먼저 수행되어, 이전의 작은 크기로 버퍼가 할당되는 문제가 있었습니다.
💡 쉬운 설명
컴퓨터가 데이터를 처리하는 통로의 크기를 바꿀 때, 새 크기에 맞는 충분한 공간을 확보하기 전에 작업을 시작하여 메모리가 넘치는 문제가 발생할 수 있습니다. 이로 인해 시스템이 불안정해지거나 보안 공격에 노출될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
arm64/sme: Set new vector length before reallocating
As part of fixing the allocation of the buffer for SVE state when changing
SME vector length we introduced an immediate reallocation of the SVE state,
this is also done when changing the SVE vector length for consistency.
Unfortunately this reallocation is done prior to writing the new vector
length to the task struct, meaning the allocation is done with the old
vector length and can lead to memory corruption due to an undersized buffer
being used.
Move the update of the vector length before the allocation to ensure that
the new vector length is taken into account.
For some reason this isn't triggering any problems when running tests on
the arm64 fixes branch (even after repeated tries) but is triggering
issues very often after merge into mainline.
📍 영향받는 시스템
SME/SVE를 지원하는 arm64 아키텍처 기반의 Linux 커널
⚔️ 공격 벡터
SME 벡터 길이를 변경하는 특정 시스템 호출을 유도하여 메모리 오버플로우 유발
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인