🇰🇷 한글 설명
Linux 커널의 NFC LLCP 구현에서 소켓 상태가 LLCP_CLOSED일 때 반환문이 누락되어 발생하는 취약점입니다. 이로 인해 release_sock()과 nfc_llcp_sock_put()이 중복 호출되어 참조 횟수 언더플로우 및 Use-After-Free(UAF) 오류가 발생할 수 있습니다.
💡 쉬운 설명
프로그램이 작업을 마친 후 종료되어야 하는데, 종료 명령을 빠뜨려 같은 작업을 두 번 반복하면서 시스템 메모리를 망가뜨리는 오류입니다. 이로 인해 해커가 시스템 권한을 탈취하거나 시스템을 강제로 종료시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfc: llcp: add missing return after LLCP_CLOSED checks
In nfc_llcp_recv_hdlc() and nfc_llcp_recv_disc(), when the socket
state is LLCP_CLOSED, the code correctly calls release_sock() and
nfc_llcp_sock_put() but fails to return. Execution falls through to
the remainder of the function, which calls release_sock() and
nfc_llcp_sock_put() again. This results in a double release_sock()
and a refcount underflow via double nfc_llcp_sock_put(), leading to
a use-after-free.
Add the missing return statements after the LLCP_CLOSED branches
in both functions to prevent the fall-through.
📍 영향받는 시스템
NFC LLCP 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 NFC 패킷을 전송하여 LLCP 소켓 상태를 유도함으로써 메모리 오류 유발
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인