🇰🇷 한글 설명
리눅스 커널의 PCI/ASPM 관리 과정에서 특정 함수 제거 시 링크 상태를 해제하는 시점이 부적절하여 발생하는 Use-After-Free 취약점입니다. PCIe 스위치에서 상위 함수가 제거될 때 메모리 해제 타이밍 문제로 인해 일반 보호 오류(GPF)가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 연결하는 통로(PCIe)를 관리하는 과정에서, 이미 사용이 끝난 메모리 주소를 다시 참조하려고 시도하여 시스템이 충돌하는 문제입니다. 주로 장치를 갑자기 뽑거나 제거할 때 시스템 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
PCI/ASPM: Fix link state exit during switch upstream function removal
Before 456d8aa37d0f ("PCI/ASPM: Disable ASPM on MFD function removal to
avoid use-after-free"), we would free the ASPM link only after the last
function on the bus pertaining to the given link was removed.
That was too late. If function 0 is removed before sibling function,
link->downstream would point to free'd memory after.
After above change, we freed the ASPM parent link state upon any function
removal on the bus pertaining to a given link.
That is too early. If the link is to a PCIe switch with MFD on the upstream
port, then removing functions other than 0 first would free a link which
still remains parent_link to the remaining downstream ports.
The resulting GPFs are especially frequent during hot-unplug, because
pciehp removes devices on the link bus in reverse order.
On that switch, function 0 is the virtual P2P bridge to the internal bus.
Free exactly when function 0 is removed -- before the parent link is
obsolete, but after all subordinate links are gone.
[kwilczynski: commit log]
📍 영향받는 시스템
PCI/ASPM 관련 패치가 적용되지 않은 이전 버전의 리눅스 커널
⚔️ 공격 벡터
물리적 또는 소프트웨어적인 PCIe 장치의 핫-언플러그(Hot-unplug)를 통한 메모리 오류 유도
🛡️ 대응 방법
PCI/ASPM 관련 수정 사항이 포함된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인합니다.