🇰🇷 한글 설명
Linux 커널의 amdxdna 드라이버에서 공유 메모리에 저장된 구조체의 크기 계산 방식에 결함이 발견되었습니다. 사용자 공간에서 command_count 값을 0으로 변경할 경우, 커널의 경계 검사 로직이 실패하여 커널 패닉(시스템 중단)이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제가 외부 프로그램이 조작할 수 있는 숫자를 믿고 메모리 크기를 계산하다가 오류가 발생하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 재부팅될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
accel/amdxdna: Remove __counted_by from struct amdxdna_cmd_chain
struct amdxdna_cmd_chain contains a flexible array annotated with
__counted_by(command_count). Since the structure is stored in shared
AMDXDNA_BO_SHARE memory, userspace can modify command_count concurrently.
If command_count is changed to zero, the bounds check generated from
__counted_by may fail and trigger a kernel panic.
Remove __counted_by to avoid relying on the userspace-controlled
command_count for the flexible array bounds check.
📍 영향받는 시스템
Linux kernel (accel/amdxdna driver 포함 버전)
⚔️ 공격 벡터
공유 메모리(AMDXDNA_BO_SHARE)에 접근 가능한 사용자 공간 프로세스가 command_count 값을 조작하여 경계 검사 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 __counted_by 어노테이션이 제거된 패치를 적용하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.