🇰🇷 한글 설명
Linux 커널의 vfio/pci 구성 요소에서 INTx 신호용 eventfd가 해제된 후에도 NULL 컨텍스트로 신호가 전달될 수 있는 취약점이 발견되었습니다. 이로 인해 인터럽트 핸들러가 등록 해제된 상태에서도 eventfd가 호출되어 시스템 불안정성을 초래할 수 있습니다. 이를 해결하기 위해 INTx 핸들러의 생명주기 관리와 ioctl 경로 간의 동기화 로직이 추가되었습니다.
💡 쉬운 설명
장치의 인터럽트 신호가 꺼진 상태에서도 시스템이 잘못된 신호를 처리하려고 시도하여 오류가 발생할 수 있는 문제입니다. 이로 인해 시스템이 멈추거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vfio/pci: Create persistent INTx handler
A vulnerability exists where the eventfd for INTx signaling can be
deconfigured, which unregisters the IRQ handler but still allows
eventfds to be signaled with a NULL context through the SET_IRQS ioctl
or through unmask irqfd if the device interrupt is pending.
Ideally this could be solved with some additional locking; the igate
mutex serializes the ioctl and config space accesses, and the interrupt
handler is unregistered relative to the trigger, but the irqfd path
runs asynchronous to those. The igate mutex cannot be acquired from the
atomic context of the eventfd wake function. Disabling the irqfd
relative to the eventfd registration is potentially incompatible with
existing userspace.
As a result, the solution implemented here moves configuration of the
INTx interrupt handler to track the lifetime of the INTx context object
and irq_type configuration, rather than registration of a particular
trigger eventfd. Synchronization is added between the ioctl path and
eventfd_signal() wrapper such that the eventfd trigger can be
dynamically updated relative to in-flight interrupts or irqfd callbacks.
📍 영향받는 시스템
Linux Kernel (vfio/pci 구성 요소를 사용하는 시스템)
⚔️ 공격 벡터
특정 ioctl 호출 또는 인터럽트 대기 상태를 이용한 비동기적 eventfd 신호 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.