🇰🇷 한글 설명
Linux 커널의 platform/surface: acpi-notify 드라이버에서 ACPI 컴패니언 객체의 존재 여부를 확인하지 않아 발생하는 취약점입니다. device_match_driver_override()를 통해 강제로 드라이버를 바인딩할 경우, ACPI 컴패니언이 없는 장치에서 NULL 포인터 역참조가 발생하여 시스템 충돌이 일어날 수 있습니다.
💡 쉬운 설명
특정 장치 드라이버가 연결될 때 필요한 부가 정보가 있는지 확인하지 않아 발생하는 오류입니다. 잘못된 장치에 드라이버를 강제로 연결하면 컴퓨터 시스템이 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
platform/surface: acpi-notify: Check ACPI companion before use
Since every platform driver can be forced to match a device that doesn't
match its list of device IDs because of device_match_driver_override(),
platform drivers that rely on the existence of a device's ACPI companion
object should verify its presence.
san_probe() dereferences the result of ACPI_COMPANION() when installing
the GSBUS address space handler, so force-binding the driver to a device
without an ACPI companion leads to a NULL pointer dereference. The
dereference was introduced when the probe function was switched from
ACPI_HANDLE() to ACPI_COMPANION().
Check the ACPI companion against NULL and return -ENODEV when it is
missing, like commit e4865a56d013 ("ACPI: driver: Check ACPI_COMPANION()
against NULL during probe") does for the core ACPI platform drivers.
📍 영향받는 시스템
ACPI 컴패니언 확인 로직이 적용되지 않은 Linux 커널 (platform/surface 드라이버 포함)
⚔️ 공격 벡터
로컬 권한을 가진 공격자가 device_match_driver_override()를 사용하여 드라이버를 부적절한 장치에 강제 바인딩
🛡️ 대응 방법
ACPI 컴패니언 존재 여부를 검증하는 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인