CVE-2026-80603

Summary

In the Linux kernel, the following vulnerability has been resolved:

netfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read

parse_dcc() treats data_end as an inclusive end pointer, but its only caller passes data_limit = ib_ptr + datalen, which points one past the last valid byte.

The newline search loop iterates while tmp <= data_end, so when no newline is present, *tmp is read at tmp == data_end, one byte beyond the region filled by skb_header_pointer().

irc_buffer is kmalloc'd as MAX_SEARCH_SIZE + 1 bytes and datalen is capped at MAX_SEARCH_SIZE, so the stray read does not fault. The byte is uninitialized or stale; if it contains an ASCII digit, simple_strtoul will consume it and produce a wrong DCC IP or port in the conntrack expectation. The extra allocation byte is also a fragile guard: if the cap or allocation size changes, this becomes a real out-of-bounds read.

Change the loop and its post-loop check to use strict less-than, consistent with the caller's exclusive-end convention. Update the function comment accordingly.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < abb8c32b88ea3f46beb68c34fe9a3ac8ed664e7eaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 437e0a3854b3a44ec15afa9ab88ec215adf3a2fdaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 910c33e4a8c046c3cc1fa5a465a4d41a1bb398f1affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 2b70f61f569bb29acb380e6f616a1bbdee15668faffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 2393f0bd7a467ad475598f3a5b9de27ca36e3037affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < aff589556ed772cb1c0c2d7b4d91ec45c0c39416affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < eeef3b81f449560653662df2dde6f6fe247c5365affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < ef6400ca25a13fd6dedbe8ef4a1d0979bbbfe88aaffected
LinuxLinux2.6.12affected
LinuxLinux0 < 2.6.12unaffected
LinuxLinux5.10.261 <= 5.10.*unaffected
LinuxLinux5.15.212 <= 5.15.*unaffected
LinuxLinux6.1.178 <= 6.1.*unaffected
LinuxLinux6.6.145 <= 6.6.*unaffected
LinuxLinux6.12.97 <= 6.12.*unaffected
LinuxLinux6.18.40 <= 6.18.*unaffected
LinuxLinux7.1.5 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References