🇰🇷 한글 설명
Linux 커널의 ieee802154: cc2520 드라이버에서 FIFOP 작업 처리 중 Use-After-Free 취약점이 발견되었습니다. 장치 제거 시 작업(work)을 단순히 비우기만 하여, 제거 프로세스 완료 후에도 인터럽트 핸들러가 작업을 다시 큐에 추가하여 해제된 메모리에 접근할 수 있는 문제입니다.
💡 쉬운 설명
장치를 제거하는 과정에서 메모리가 이미 삭제되었음에도 불구하고, 시스템이 해당 메모리를 사용하려고 시도하여 오류가 발생하는 문제입니다. 이로 인해 시스템이 불안정해지거나 예기치 않은 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ieee802154: cc2520: fix FIFOP work use-after-free
The FIFOP interrupt handler queues cc2520_fifop_irqwork. On removal,
cc2520_remove() only flushes the work. The devm-managed FIFOP IRQ
remains active until after ->remove() returns and can queue the work
again after that flush, allowing it to run after the private data is
released.
Disable the work with disable_work_sync() instead of flushing it, so
the handler can no longer queue it once removal begins. Destroy the
buffer mutex last, since the worker and the stop callback invoked
through ieee802154_unregister_hw() both take it.
Found by an in-house static analysis tool.
📍 영향받는 시스템
Linux kernel (ieee802154: cc2520 driver component)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 인터럽트 조건을 유도하여 메모리 오류를 발생시킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인