🇰🇷 한글 설명
Linux 커널의 fnic 드라이버에서 스핀락을 보유한 상태로 VLAN 할당을 시도할 때 잘못된 메모리 할당 플래그를 사용하여 발생하는 취약점입니다. GFP_KERNEL 플래그는 할당 중 프로세스를 잠재울 수 있어, 원자적 컨텍스트인 스핀락 내부에서 사용될 경우 데드락이나 시스템 경고를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제(커널)가 아주 바쁘게 작업 중인 순간에, 잠시 멈춰서 기다려야 하는 작업을 요청하여 시스템이 멈추거나 오류가 발생할 수 있는 문제입니다. 이를 해결하기 위해 작업 방식을 더 안전한 방식으로 수정했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: fnic: Use GFP_ATOMIC for VLAN alloc under spinlock
fnic_fcoe_process_vlan_resp() allocates a VLAN descriptor with
kzalloc_obj() (default GFP_KERNEL) while holding vlans_lock via
spin_lock_irqsave(). GFP_KERNEL may sleep, which is not allowed in this
atomic context and can trigger a sleeping-from-invalid-context warning
or deadlock.
Pass GFP_ATOMIC so the allocation is safe under the IRQ-safe spinlock.
📍 영향받는 시스템
fnic 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특정 네트워크 환경(FCoE/VLAN)을 조작하여 시스템 데드락을 유도할 수 있음
🛡️ 대응 방법
fnic 드라이버의 VLAN 할당 플래그를 GFP_KERNEL에서 GFP_ATOMIC으로 수정한 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 보안 업데이트 버전인지 확인