🇰🇷 한글 설명
Linux 커널의 arm64/gcs 아키텍처에서 arch_set_shadow_stack_status() 함수의 오류 처리 로직에 결함이 발견되었습니다. alloc_gcs() 함수가 실패 시 NULL이 아닌 에러 코드가 포함된 포인터를 반환함에도 불구하고, 기존의 NULL 체크 방식이 이를 제대로 감지하지 못해 잘못된 GCS 주소를 사용할 위험이 있습니다.
💡 쉬운 설명
컴퓨터가 작업을 수행할 때 오류가 발생하면 '실패했다'는 신호를 보내야 하는데, 이 신호를 제대로 확인하지 못하고 잘못된 주소를 참조하는 문제입니다. 이로 인해 시스템이 예상치 못한 동작을 하거나 보안에 취약해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
arm64/gcs: Fix error handling in arch_set_shadow_stack_status()
alloc_gcs() returns an error-encoded pointer on failure, which comes
from do_mmap(), not NULL.
The current NULL check fails to detect errors, which could lead to using
an invalid GCS address.
Use IS_ERR_VALUE() to properly detect errors, consistent with the
check in gcs_alloc_thread_stack().
📍 영향받는 시스템
arm64 아키텍처를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
잘못된 메모리 주소 참조를 유도하여 시스템 안정성을 해치거나 제어 흐름을 조작할 수 있는 로컬 공격
🛡️ 대응 방법
해당 오류가 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인