🇰🇷 한글 설명
Linux 커널의 PLDA PCI 드라이버에서 plda_init_interrupts() 함수 실행 중 오류가 발생할 경우 IRQ 도메인이 제대로 해제되지 않는 리소스 누수 취약점이 발견되었습니다. 이로 인해 인터럽트 매핑 실패 시 할당된 IRQ 도메인이 메모리에 남아 시스템 자원을 소모할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품이 작동을 시작하다가 중간에 오류가 나면, 사용하던 자원을 다시 반납해야 하는데 이를 잊어버리는 버그입니다. 이 버그가 반복되면 시스템의 중요한 자원이 계속 낭비되어 성능 저하나 불안정을 초래할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
PCI: plda: Fix IRQ domain leaks in the error paths of plda_init_interrupts()
plda_init_interrupts() initializes IRQ domains and creates IRQ mapping but
does not unwind them when later step fails.
If platform_get_irq() or either irq_create_mapping() fails
in plda_init_interrupts(), the domains are never deinitialized. If
irq_create_mapping() fails, port->intx_irq stays initialized.
Hence, remove the IRQ domains in the error path by calling
plda_pcie_irq_domain_deinit().
Since plda_pcie_irq_domain_deinit() now disposes of the intx_irq and
msi_irq mappings itself before removing their domains, the msi_irq
mapping failure path can go directly to err_irq_domain_deinit instead of
disposing of port->intx_irq separately first.
This issue was found by automated review of sashiko-bot
[mani: commit log]
📍 영향받는 시스템
PLDA PCI 드라이버를 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
직접적인 공격보다는 하드웨어 오류나 특정 상황을 유도하여 시스템 자원을 고갈시키는 방식
🛡️ 대응 방법
plda_pcie_irq_domain_deinit()를 호출하여 오류 발생 시 IRQ 도메인을 올바르게 해제하도록 수정된 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 버전인지 확인