🇰🇷 한글 설명
Linux 커널의 ACPI APEI 구성에서 동기식 메모리 오류가 발생했을 때, 적절한 복구 작업(memory_failure)이 큐에 등록되지 않으면 프로세스가 무한 루프에 빠질 수 있는 취약점입니다. 이로 인해 CPU가 지속적으로 예외를 발생시켜 플랫폼 펌웨어 임계값을 초과하거나 커널 하드 락업을 유발하여 시스템이 재부팅될 수 있습니다.
💡 쉬운 설명
메모리에 오류가 생겼을 때 시스템이 이를 안전하게 처리하지 못하고 계속해서 같은 오류를 반복하며 멈춰버리는 문제입니다. 이로 인해 컴퓨터가 갑자기 재부팅되거나 먹통이 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ACPI: APEI: send SIGBUS to current task if synchronous memory error not recovered
If a synchronous error is detected as a result of user-space process
triggering a 2-bit uncorrected error, the CPU will take a synchronous
error exception such as Synchronous External Abort (SEA) on Arm64. The
kernel will queue a memory_failure() work which poisons the related
page, unmaps the page, and then sends a SIGBUS to the process, so that
a system wide panic can be avoided.
However, no memory_failure() work will be queued when abnormal
synchronous errors occur. These errors can include situations like
invalid PA, unexpected severity, no memory failure config support,
invalid GUID section, etc. In such a case, the user-space process will
trigger SEA again. This loop can potentially exceed the platform
firmware threshold or even trigger a kernel hard lockup, leading to a
system reboot.
Fix it by performing a force kill if no memory_failure() work is queued
for synchronous errors.
[ rjw: Changelog edits ]
📍 영향받는 시스템
Linux Kernel (Arm64 아키텍처 기반 시스템)
⚔️ 공격 벡터
사용자 공간 프로세스가 2비트 미교정 오류를 유발하는 특정 메모리 접근을 시도하여 발생
🛡️ 대응 방법
메모리 오류 복구 작업이 큐에 등록되지 않을 경우 해당 프로세스를 강제 종료(force kill)하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인