{"id":"CVE-2026-80799","state":"PUBLISHED","title":"nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: llcp: fix OOB read and u8 offset wrap in TLV parsers\n\nnfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain\nthree related bugs in their TLV parsing loops:\n\n1. 'offset' is declared u8 but tlv_array_len is u16. When TLV data\n   advances offset past 255 it silently wraps to zero, causing\n   infinite loops or double-processing of buffer data.\n\n2. Before reading tlv[0] (type) and tlv[1] (length) there is no\n   check that offset+2 <= tlv_array_len. A truncated TLV causes\n   an OOB read of one byte past the buffer end.\n\n3. After reading the length field, the value bytes are accessed\n   without checking offset+2+length <= tlv_array_len. A crafted\n   length=0xFF on a short buffer causes up to 255 bytes of OOB\n   read past the buffer end.\n\nBoth functions are reachable without authentication via\nnfc_llcp_set_remote_gb() which feeds remote LLCP general bytes\ndirectly into nfc_llcp_parse_gb_tlv() with no additional\nvalidation.\n\nFix all three issues by widening offset from u8 to u16 and adding\nbounds checks for both the TLV header and value field before each\naccess.","publishedAt":"2026-09-04T15:13:13.311Z","updatedAt":"2026-10-19T08:43:52.451Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0be9de2ea01e8d52646e7310a7eef5459cf07ea8","status":"affected","lessThan":"2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"7f6f3d087c67a4346189ef2c36481455bbc59a74","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"9c47d667963542c3cf8e3007b7f10c0904d08238","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"a209334ed929941b20810c17c3a507445b0a7c85","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"382eaa770335acf4f16a5a55524500f2bb4207df","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"2d239590d1845a706304833d40dd6d4fec20ad88","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"e84cdfdc4a6c88e8b751144458f2e04e24415a28","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"875285a165fd3b402de2ab3be0deb355d6f4caf5","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"78b20c8eeacd2e44a2d8a4cb5316d3c521d90911","versionType":"git"},{"version":"1deacb5e031e289ca5636f2db4fcae6612c05d34","status":"affected","versionType":"git"},{"version":"66a1be74230bbe098e651766c9a0cf4038db8442","status":"affected","versionType":"git"},{"version":"5.10.188","status":"affected","lessThan":"5.10.267","versionType":"semver"},{"version":"4.19.291","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.251","status":"affected","lessThan":"5.5","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/nfc/llcp_commands.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.15","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.218","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.185","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.154","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.106","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/nfc/llcp_commands.c"]}],"references":["https://git.kernel.org/stable/c/2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1","https://git.kernel.org/stable/c/7f6f3d087c67a4346189ef2c36481455bbc59a74","https://git.kernel.org/stable/c/9c47d667963542c3cf8e3007b7f10c0904d08238","https://git.kernel.org/stable/c/a209334ed929941b20810c17c3a507445b0a7c85","https://git.kernel.org/stable/c/382eaa770335acf4f16a5a55524500f2bb4207df","https://git.kernel.org/stable/c/2d239590d1845a706304833d40dd6d4fec20ad88","https://git.kernel.org/stable/c/e84cdfdc4a6c88e8b751144458f2e04e24415a28","https://git.kernel.org/stable/c/875285a165fd3b402de2ab3be0deb355d6f4caf5","https://git.kernel.org/stable/c/78b20c8eeacd2e44a2d8a4cb5316d3c521d90911"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80799.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80799","state":"PUBLISHED","datePublished":"2026-09-04T15:13:13.311Z","dateUpdated":"2026-10-19T08:43:52.451Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.793Z"},"containers":{"cna":{"title":"nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: llcp: fix OOB read and u8 offset wrap in TLV parsers\n\nnfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain\nthree related bugs in their TLV parsing loops:\n\n1. 'offset' is declared u8 but tlv_array_len is u16. When TLV data\n   advances offset past 255 it silently wraps to zero, causing\n   infinite loops or double-processing of buffer data.\n\n2. Before reading tlv[0] (type) and tlv[1] (length) there is no\n   check that offset+2 <= tlv_array_len. A truncated TLV causes\n   an OOB read of one byte past the buffer end.\n\n3. After reading the length field, the value bytes are accessed\n   without checking offset+2+length <= tlv_array_len. A crafted\n   length=0xFF on a short buffer causes up to 255 bytes of OOB\n   read past the buffer end.\n\nBoth functions are reachable without authentication via\nnfc_llcp_set_remote_gb() which feeds remote LLCP general bytes\ndirectly into nfc_llcp_parse_gb_tlv() with no additional\nvalidation.\n\nFix all three issues by widening offset from u8 to u16 and adding\nbounds checks for both the TLV header and value field before each\naccess."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0be9de2ea01e8d52646e7310a7eef5459cf07ea8","status":"affected","lessThan":"2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"7f6f3d087c67a4346189ef2c36481455bbc59a74","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"9c47d667963542c3cf8e3007b7f10c0904d08238","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"a209334ed929941b20810c17c3a507445b0a7c85","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"382eaa770335acf4f16a5a55524500f2bb4207df","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"2d239590d1845a706304833d40dd6d4fec20ad88","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"e84cdfdc4a6c88e8b751144458f2e04e24415a28","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"875285a165fd3b402de2ab3be0deb355d6f4caf5","versionType":"git"},{"version":"3df40eb3a2ea58bf404a38f15a7a2768e4762cb0","status":"affected","lessThan":"78b20c8eeacd2e44a2d8a4cb5316d3c521d90911","versionType":"git"},{"version":"1deacb5e031e289ca5636f2db4fcae6612c05d34","status":"affected","versionType":"git"},{"version":"66a1be74230bbe098e651766c9a0cf4038db8442","status":"affected","versionType":"git"},{"version":"5.10.188","status":"affected","lessThan":"5.10.267","versionType":"semver"},{"version":"4.19.291","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.4.251","status":"affected","lessThan":"5.5","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/nfc/llcp_commands.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.15","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.218","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.185","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.154","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.106","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/nfc/llcp_commands.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1"},{"url":"https://git.kernel.org/stable/c/7f6f3d087c67a4346189ef2c36481455bbc59a74"},{"url":"https://git.kernel.org/stable/c/9c47d667963542c3cf8e3007b7f10c0904d08238"},{"url":"https://git.kernel.org/stable/c/a209334ed929941b20810c17c3a507445b0a7c85"},{"url":"https://git.kernel.org/stable/c/382eaa770335acf4f16a5a55524500f2bb4207df"},{"url":"https://git.kernel.org/stable/c/2d239590d1845a706304833d40dd6d4fec20ad88"},{"url":"https://git.kernel.org/stable/c/e84cdfdc4a6c88e8b751144458f2e04e24415a28"},{"url":"https://git.kernel.org/stable/c/875285a165fd3b402de2ab3be0deb355d6f4caf5"},{"url":"https://git.kernel.org/stable/c/78b20c8eeacd2e44a2d8a4cb5316d3c521d90911"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:43:52.451Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.188","versionEndExcluding":"5.10.267"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"5.15.218"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.1.185"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.6.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.12.106"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.18.47"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"7.1.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"7.2.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"7.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.291"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.251"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}