🇰🇷 한글 설명
Linux 커널의 mana 네트워크 드라이버에서 debugfs 디렉토리 이름을 생성할 때 발생하는 취약점입니다. 기존 방식은 VF(Virtual Function) 환경에서 NULL 포인터 역참조를 유발하거나, 서로 다른 장치가 동일한 이름을 사용하여 디렉토리 생성 오류를 일으킬 수 있었습니다.
💡 쉬운 설명
컴퓨터 장치의 정보를 보여주는 폴더를 만들 때 이름이 중복되거나 잘못된 주소를 참조하여 시스템 오류가 발생할 수 있는 문제입니다. 이를 해결하기 위해 각 장치에 고유한 이름을 부여하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: mana: Use pci_name() for debugfs directory naming
Use pci_name(pdev) for the per-device debugfs directory instead of
hardcoded "0" for PFs and pci_slot_name(pdev->slot) for VFs. The
previous approach had two issues:
1. pci_slot_name() dereferences pdev->slot, which can be NULL for VFs
in environments like generic VFIO passthrough or nested KVM,
causing a NULL pointer dereference.
2. Multiple PFs would all use "0", and VFs across different PCI
domains or buses could share the same slot name, leading to
-EEXIST errors from debugfs_create_dir().
pci_name(pdev) returns the unique BDF address, is always valid, and is
unique across the system.
📍 영향받는 시스템
Linux kernel (mana network driver 포함 버전)
⚔️ 공격 벡터
로컬 환경에서 특정 PCI 장치 구성(VFIO passthrough 등)을 통해 NULL 포인터 역참조 또는 파일 시스템 충돌 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인