🇰🇷 한글 설명
리눅스 커널의 ACPI NFIT 드라이버에서 NFIT 테이블 존재 여부를 확인하기 전에 알림 핸들러를 먼저 설치하여 발생하는 NULL 포인터 역참조 취약점입니다. NFIT 테이블이 없는 상태에서 플랫폼 펌웨어가 메모리 오류 알림을 트리거할 경우 시스템 충돌이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 하드웨어 정보를 확인하는 과정에서 필요한 정보가 없는데도 작업을 시도하다가 시스템이 멈추거나 오류가 발생하는 문제입니다. 특정 하드웨어 신호가 올 때 시스템이 빈 공간을 참조하려고 해서 생기는 현상입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ACPI: NFIT: core: Fix possible NULL pointer dereference
After commit 9b311b7313d6 ("ACPI: NFIT: Install Notify() handler before
getting NFIT table"), acpi_nfit_probe() installs an ACPI notify handler
for the NFIT device before checking the presence of the NFIT table. If
that table is not there, 0 is returned without allocating the acpi_desc
object and setting the driver data pointer of the NFIT device. If the
platform firmware triggers an NFIT_NOTIFY_UC_MEMORY_ERROR notification
on the NFIT device at that point, acpi_nfit_uc_error_notify() will
dereference a NULL pointer.
Prevent that from occurring by adding an acpi_desc check against NULL
to acpi_nfit_uc_error_notify().
📍 영향받는 시스템
NFIT 테이블을 사용하는 ACPI 지원 리눅스 커널 (commit 9b311b7313d6 이후 버전 포함)
⚔️ 공격 벡터
플랫폼 펌웨어를 통한 NFIT_NOTIFY_UC_MEMORY_ERROR 알림 트리거 (로컬/펌웨어 수준)
🛡️ 대응 방법
커널 패치를 적용하여 acpi_nfit_uc_error_notify() 함수 내에 NULL 체크 로직을 추가해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.