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.
Published: 2026-08-28
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the Linux kernel's netfilter nf_conntrack_irc module, where the parse_dcc() function incorrectly treats the data limit as inclusive. When an IRC message lacks a newline, the code reads a byte beyond the legitimate data boundary. This stray read yields an uninitialized or stale value; if the byte happens to be an ASCII digit, the subsequent conversion routine treats it as part of a DCC IP address or port, producing an incorrect expectation in the connection tracking table. The consequence is a corrupted conntrack entry that may cause legitimate connections to be dropped, misdirected, or, in the worst case, allow an attacker to manipulate packet filtering by forging expected addresses.

Affected Systems

All Linux kernel releases that have not yet applied the fix contain the vulnerable code. The issue is present in the core nf_conntrack_irc subsystem and impacts any distribution using the affected kernel version. No specific vendor or product version list is supplied, but the bug was resolved in a later stable kernel revision and thereafter includes the corrected loop logic.

Risk and Exploitability

The vulnerability is an out‑of‑bounds read (CWE‑788) and the patch merely changes a loop boundary. No EPSS data or KEV listing is available, indicating low to moderate exposure thus far. An attacker would need to send crafted IRC traffic that reaches the vulnerable nf_conntrack_irc code, which can be achieved from an external network listening on the standard IRC ports. Successful exploitation requires no elevated privileges, but the impact is limited to manipulation of conntrack state for that traffic. Given the absence of a public exploit and the requirement for traffic on a specific protocol, the likelihood of exploitation remains modest.

Generated by OpenCVE AI on August 28, 2026 at 09:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patch for CVE‑2026‑80603.
  • If an immediate kernel upgrade is infeasible, manually apply the upstream patch that changes the parse_dcc loop to use a strict less‑than bound and updates the comment accordingly, then rebuild and install the kernel.
  • Restart network services or reboot the system to ensure the new nf_conntrack_irc logic is loaded.
  • As a temporary mitigation, restrict or block incoming IRC traffic on ports typically used for DCC transfers using a firewall to reduce exposure.

Generated by OpenCVE AI on August 28, 2026 at 09:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 10:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-788

Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
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.
Title netfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-28T06:48:29.158Z

Reserved: 2026-08-26T14:34:25.772Z

Link: CVE-2026-80603

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T08:16:44.187

Modified: 2026-08-28T08:16:44.187

Link: CVE-2026-80603

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T09:45:17Z

Weaknesses
  • CWE-788

    Access of Memory Location After End of Buffer