🇰🇷 한글 설명
Linux 커널의 pn533 NFC 드라이버에서 nfc_target 구조체가 적절히 초기화되지 않아 발생하는 slab-out-of-bounds read 취약점입니다. 초기화되지 않은 쓰레기 값이 nfc_target의 길이 정보로 사용될 경우, nla_put() 함수 호출 시 메모리 경계를 벗어난 읽기 작업이 발생할 수 있습니다.
💡 쉬운 설명
NFC 기능을 사용하는 리눅스 시스템에서 메모리 데이터가 깨끗하게 지워지지 않아 발생하는 오류입니다. 이로 인해 시스템이 예상치 못한 메모리 영역을 읽으려다 멈추거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfc: pn533: Clear nfc_target before being used
Fix a slab-out-of-bounds read that occurs in nla_put() called from
nfc_genl_send_target() when target->sensb_res_len, which is duplicated
from an nfc_target in pn533, is too large as the nfc_target is not
properly initialized and retains garbage values. Clear nfc_targets with
memset() before they are used.
Found by a modified version of syzkaller.
BUG: KASAN: slab-out-of-bounds in nla_put
Call Trace:
memcpy
nla_put
nfc_genl_dump_targets
genl_lock_dumpit
netlink_dump
__netlink_dump_start
genl_family_rcv_msg_dumpit
genl_rcv_msg
netlink_rcv_skb
genl_rcv
netlink_unicast
netlink_sendmsg
sock_sendmsg
____sys_sendmsg
___sys_sendmsg
__sys_sendmsg
do_syscall_64
📍 영향받는 시스템
pn533 드라이버를 사용하는 Linux kernel (패치 적용 전 버전)
⚔️ 공격 벡터
조작된 NFC 타겟 정보를 포함한 Netlink 메시지를 통해 메모리 경계 외 읽기 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 nfc_target 사용 전 memset()이 수행되도록 조치
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전 이상인지 확인