CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's netfilter component, specifically in the `parse_dcc()` function, which improperly handles an inclusive end pointer, leading to an off-by-one out-of-bounds read. This flaw can result in the reading of uninitialized or stale memory, potentially allowing for incorrect parsing of DCC IP or port values, which could disrupt network traffic handling. Organizations using affected Linux kernel versions should prioritize this issue to mitigate risks related to network connection tracking and ensure the integrity of their systems.
Original NVD Description
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.