🔍 CVE-2025-38069

7.8
CVSS Score
HIGH
2025-06-18
2026-10-30 13:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 PCI 엔드포인트 테스트 드라이버(pci-epf-test)에서 발생하는 이중 해제(Double Free) 취약점입니다. BAR 할당 실패 시 메모리를 해제하면서 포인터를 NULL로 초기화하지 않아, 재부팅이나 재시작 시 동일한 메모리 영역을 다시 해제하려 시도하며 커널 오류(Oops)를 유발합니다.

💡 쉬운 설명

컴퓨터 부품을 설정하는 과정에서 메모리를 정리할 때, 이미 정리한 메모리 주소를 지우지 않고 남겨두어 발생하는 문제입니다. 이로 인해 시스템이 다시 시작될 때 이미 비어있는 메모리를 또 정리하려고 시도하다가 시스템이 멈추거나 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: PCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops Fix a kernel oops found while testing the stm32_pcie Endpoint driver with handling of PERST# deassertion: During EP initialization, pci_epf_test_alloc_space() allocates all BARs, which are further freed if epc_set_bar() fails (for instance, due to no free inbound window). However, when pci_epc_set_bar() fails, the error path: pci_epc_set_bar() -> pci_epf_free_space() does not clear the previous assignment to epf_test->reg[bar]. Then, if the host reboots, the PERST# deassertion restarts the BAR allocation sequence with the same allocation failure (no free inbound window), creating a double free situation since epf_test->reg[bar] was deallocated and is still non-NULL. Thus, make sure that pci_epf_alloc_space() and pci_epf_free_space() invocations are symmetric, and as such, set epf_test->reg[bar] to NULL when memory is freed. [kwilczynski: commit log]

📍 영향받는 시스템

Linux kernel (pci-epf-test 드라이버를 사용하는 시스템)

⚔️ 공격 벡터

로컬 공격자가 특정 PCI 엔드포인트 초기화 실패 상황을 유도하여 커널 오류를 발생시킴

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 pci-epf-test의 메모리 관리 로직을 수정해야 함

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 공지(Security Advisory)와 대조하여 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel