{"id":17304,"date":"2026-09-05T02:30:58","date_gmt":"2026-09-04T18:30:58","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80800"},"modified":"2026-09-05T02:30:58","modified_gmt":"2026-09-04T18:30:58","slug":"cve-2026-80800","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80800","title":{"rendered":"CVE-2026-80800 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: llcp: bound the"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfc: llcp: bound the connect_sn TLV walk to the skb<\/p>\n<p>Commit 27256cdb290e (&#8220;nfc: llcp: bound SNL TLV parsing to the skb and<br \/>\nadd length checks&#8221;) fixed the unbounded TLV walk in nfc_llcp_recv_snl(),<br \/>\nand commit d8bd2dedbde5 (&#8220;nfc: llcp: fix OOB read and u8 offset wrap in<br \/>\nTLV parsers&#8221;) subsequently bounded nfc_llcp_parse_gb_tlv() and<br \/>\nnfc_llcp_parse_connection_tlv(). One sibling parser sharing the same<br \/>\npattern remains unbounded: nfc_llcp_connect_sn().<\/p>\n<p>nfc_llcp_connect_sn() walks a TLV list, reading a two-byte header<br \/>\n(type, length) followed by length bytes of value, without checking that<br \/>\nthe two header bytes or the declared length stay within the buffer. It<br \/>\nreturns a pointer to a service name of up to 255 bytes that may point<br \/>\npast the end of the skb; it is subsequently consumed by memcmp() in<br \/>\nnfc_llcp_sock_from_sn(). In addition tlv_array_len was computed as<br \/>\n&#8220;skb-&gt;len &#8211; LLCP_HEADER_SIZE&#8221; in size_t, so a CONNECT\/CC frame shorter<br \/>\nthan the LLCP header underflows to a huge length and the walk runs far<br \/>\npast the buffer.<\/p>\n<p>nfc_llcp_connect_sn() is reachable from nfc_llcp_recv_connect() and<br \/>\nnfc_llcp_recv_cc(), i.e. from received CONNECT and CC PDUs. A nearby<br \/>\nNFC device can reach this without authentication; LLCP link activation<br \/>\nhappens automatically after NFC-DEP, and the nfc_llcp_rx_skb()<br \/>\ndispatcher applies no minimum-length guard.<\/p>\n<p>Walk the TLV list by pointer, bounded by skb_tail_pointer(skb), and<br \/>\nvalidate each declared length before use, matching the approach already<br \/>\nused for nfc_llcp_recv_snl(). Starting the walk at<br \/>\n&amp;skb-&gt;data[LLCP_HEADER_SIZE] against the tail pointer also removes the<br \/>\nsize_t underflow for short frames.<\/p>\n<p>Found by 0sec automated security-research tooling (https:\/\/0sec.ai).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfc: llcp: bound the connect_sn TLV walk to the skb<\/p>\n<p>Commit 27256cdb290e (&#8220;nfc: llcp: bound SNL TLV parsing to the skb and<br \/>\nadd leng<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-17304","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/17304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}