🔍 CVE-2026-80800

0.0
CVSS Score
UNKNOWN
2026-09-04
2026-10-19 09:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 NFC LLCP 구성 요소에서 TLV(Type-Length-Value) 파싱 시 경계 검사가 누락되어 발생하는 취약점입니다. 공격자가 조작된 CONNECT 또는 CC PDU를 전송할 경우, 메모리 경계를 벗어난 읽기(OOB Read)나 정수 언더플로우를 유발하여 시스템 안정성을 해칠 수 있습니다.

💡 쉬운 설명

NFC 통신을 처리하는 과정에서 데이터의 길이를 제대로 확인하지 않아 발생하는 오류입니다. 근처에 있는 공격자가 특수한 신호를 보내 기기의 메모리 정보를 잘못 읽게 만들거나 시스템을 불안정하게 만들 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nfc: llcp: bound the connect_sn TLV walk to the skb Commit 27256cdb290e ("nfc: llcp: bound SNL TLV parsing to the skb and add length checks") fixed the unbounded TLV walk in nfc_llcp_recv_snl(), and commit d8bd2dedbde5 ("nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers") subsequently bounded nfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv(). One sibling parser sharing the same pattern remains unbounded: nfc_llcp_connect_sn(). nfc_llcp_connect_sn() walks a TLV list, reading a two-byte header (type, length) followed by length bytes of value, without checking that the two header bytes or the declared length stay within the buffer. It returns a pointer to a service name of up to 255 bytes that may point past the end of the skb; it is subsequently consumed by memcmp() in nfc_llcp_sock_from_sn(). In addition tlv_array_len was computed as "skb->len - LLCP_HEADER_SIZE" in size_t, so a CONNECT/CC frame shorter than the LLCP header underflows to a huge length and the walk runs far past the buffer. nfc_llcp_connect_sn() is reachable from nfc_llcp_recv_connect() and nfc_llcp_recv_cc(), i.e. from received CONNECT and CC PDUs. A nearby NFC device can reach this without authentication; LLCP link activation happens automatically after NFC-DEP, and the nfc_llcp_rx_skb() dispatcher applies no minimum-length guard. Walk the TLV list by pointer, bounded by skb_tail_pointer(skb), and validate each declared length before use, matching the approach already used for nfc_llcp_recv_snl(). Starting the walk at &skb->data[LLCP_HEADER_SIZE] against the tail pointer also removes the size_t underflow for short frames. Found by 0sec automated security-research tooling (https://0sec.ai).

📍 영향받는 시스템

Linux Kernel (NFC LLCP 관련 모듈이 활성화된 버전)

⚔️ 공격 벡터

인증 없이 근거리 NFC 통신을 통해 조작된 LLCP CONNECT 또는 CC PDU 패킷 전송

🛡️ 대응 방법

커널 패치를 적용하여 nfc_llcp_connect_sn() 함수의 TLV 파싱 시 경계 검사 및 길이 검증 로직을 업데이트해야 합니다.

🔧 검증 코드

커널 버전을 확인하고 해당 함수가 커널 심볼에 존재하는지 확인하여 패치 적용 여부를 검토합니다.

Shell / Script
uname -r && grep -r "nfc_llcp_connect_sn" /proc/kallsyms 2>/dev/null

💻 영향받는 소프트웨어

Linux Kernel