🇰🇷 한글 설명
Linux 커널의 USB ACPI 모듈인 usb_acpi_add_usb4_devlink()에서 usb_hub_to_struct_hub()가 NULL을 반환할 수 있음에도 NULL 검사 없이 hub->ports 배열에 접근하여 널 포인터 역참조가 발생할 수 있습니다. 허브 드라이버 언바인드나 해제 경합 상태에서 이 문제가 나타날 수 있으며, 이를 막기 위해 NULL 검사를 추가하는 패치가 적용되었습니다.
💡 쉬운 설명
컴퓨터의 USB 기능을 관리하는 부분에서 확인하지 않은 빈 값을 사용해 프로그램이 멈추거나 비정상 종료될 수 있습니다. 시스템 관리자는 커널을 최신 보안 패치 버전으로 업데이트하면 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: acpi: Prevent null pointer dereference in usb_acpi_add_usb4_devlink()
As demonstrated by the fix for update_port_device_state,
commit 12783c0b9e2c ("usb: core: Prevent null pointer dereference in update_port_device_state"),
usb_hub_to_struct_hub() can return NULL in certain scenarios,
such as during hub driver unbind or teardown race conditions,
even if the underlying usb_device structure exists.
Plus, all other places that call usb_hub_to_struct_hub() in the same file
do check for NULL return values.
If usb_hub_to_struct_hub() returns NULL, the subsequent access to
hub->ports[udev->portnum - 1] will cause a null pointer dereference.
📍 영향받는 시스템
패치 적용 전 Linux 커널 버전 (USB4 장치를 사용하는 ACPI 기반 시스템)
⚔️ 공격 벡터
로컬 사용자가 USB 허브 드라이버 언바인드와 해제 과정의 경합 상태를 유발해 커널 충돌(서비스 거부)을 일으킬 수 있음
🛡️ 대응 방법
배포판의 최신 커널 패키지로 업데이트하거나, 커널 소스에 해당 NULL 검사 패치를 적용 후 재부팅
🔧 검증 코드
출력된 커널 버전을 배포판의 보안 공지나 패치 적용 여부와 대조하여 수정된 최신 커널 버전인지 확인하며, 해당 패치가 포함된 버전 이상이면 안전합니다.