🇰🇷 한글 설명
Linux 커널의 MediaTek PCI 드라이버에서 포트 활성화 실패 시 IRQ 도메인이 해제되지 않는 메모리 누수 취약점이 발견되었습니다. 이를 해결하기 위해 포트별 IRQ 해제 헬퍼 함수를 도입하여 오류 발생 시 자원이 정상적으로 반환되도록 수정되었습니다.
💡 쉬운 설명
컴퓨터 부품이 작동을 시작하다가 오류가 나면 사용하던 자원을 반납해야 하는데, 이 과정에서 자원을 돌려주지 않고 계속 붙잡고 있는 문제가 있었습니다. 이로 인해 시스템 자원이 낭비될 수 있는 결함을 수정했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
PCI: mediatek: Fix IRQ domain leak when port fails to enable
When mtk_pcie_enable_port() fails, mtk_pcie_port_free() removes the port
from pcie->ports and frees the port structure. However, the IRQ domains set
up earlier by mtk_pcie_init_irq_domain() are never freed.
Fix this by refactoring mtk_pcie_irq_teardown() into a per-port helper,
mtk_pcie_irq_teardown_port(), and calling it from mtk_pcie_setup() when
mtk_pcie_enable_port() fails. Since the IRQ teardown must only happen in
the probe error path (during resume, child devices may have active MSI
mappings and the NOIRQ context prohibits sleeping locks),
mtk_pcie_enable_port() is changed to return an error code so callers can
distinguish the two paths and act accordingly.
This issue was reported by Sashiko while reviewing the EcoNet EN7528 SoC
support series.
📍 영향받는 시스템
MediaTek PCI 지원이 포함된 Linux 커널 버전
⚔️ 공격 벡터
직접적인 외부 공격은 어려우나, 시스템 오류를 유도하여 자원 고갈을 일으킬 수 있음
🛡️ 대응 방법
MediaTek PCI 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인