🇰🇷 한글 설명
Linux 커널의 EFI 및 ACPI 초기화 과정에서 워크큐(workqueue)가 할당되기 전에 ACPI PRM 호출이 발생하여 NULL 포인터 역참조가 발생하는 취약점입니다. 이를 해결하기 위해 워크큐 할당 시점을 초기화 단계 중 더 이른 시점인 postcore initcall로 분리하여 안정성을 확보했습니다.
💡 쉬운 설명
컴퓨터가 켜질 때 시스템을 관리하는 프로그램이 준비되기도 전에 명령을 내려서 시스템이 멈추거나 오류가 발생하는 문제입니다. 이 문제를 해결하기 위해 준비 과정을 더 앞당겨서 순서가 꼬이지 않게 만들었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
efi: Allocate runtime workqueue before ACPI init
Since commit
5894cf571e14 ("acpi/prmt: Use EFI runtime sandbox to invoke PRM handlers")
ACPI PRM calls are delegated to a workqueue which runs in a kernel
thread, making it easier to detect and mitigate faulting memory accesses
performed by the firmware.
Rafael reports that such PRM accesses may occur before efisubsys_init()
executes, which is where the workqueue is allocated, leading to NULL
pointer dereferences. Since acpi_init() [which triggers the early PRM
accesses] executes as a subsys_initcall() as well, and has its own
dependencies that may be sensitive to initcall ordering, deferring
acpi_init() is not an option.
So instead, split off the workqueue allocation into its own postcore
initcall, as this is the only missing piece to allow EFI runtime calls
to be made. This ensures that EFI runtime call (including PRM calls) are
accessible to all code running at subsys_initcall() level.
📍 영향받는 시스템
Linux Kernel (EFI/ACPI 관련 모듈이 포함된 버전)
⚔️ 공격 벡터
로컬 시스템 부팅 과정에서의 초기화 순서 불일치를 이용한 커널 패닉 유도
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 버전인지 배포판 보안 공지를 통해 확인