Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-80603

Опубликовано: 28 авг. 2026
Источник: redhat
CVSS3: 5.3

Описание

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.

A flaw was found in the Linux kernel's netfilter component, specifically within the nf_conntrack_irc module. An off-by-one error in the parse_dcc() function can cause the system to read one byte beyond an allocated buffer. This can lead to the use of uninitialized or stale data, potentially resulting in an incorrect IP address or port being recorded in the connection tracking (conntrack) expectation for Direct Client-to-Client (DCC) connections. This could disrupt network communication or lead to incorrect routing.

Отчет

An off by one read in nf_conntrack_irc parse_dcc happens because data_end is passed as one past the last valid byte but the parser treated it as an inclusive end pointer. If an IRC DCC payload has no newline inside the copied region, the loop can read one byte past the skb_header_pointer() data and simple_strtoul may consume a stale or uninitialized digit. This can produce a wrong DCC IP or port in the conntrack expectation and may weaken filtering behavior when the IRC helper is enabled for inspected traffic. For the CVSS the PR:N because a remote sender does not need an account on the target when the helper is enabled and the crafted IRC traffic is inspected by the firewall or gateway. The issue is network reachable only in deployments that enable or assign nf_conntrack_irc to IRC traffic. Impact is mainly low integrity impact through incorrect expectation creation, with possible low confidentiality impact in the paranoid interpretation. There is no clear evidence of kernel memory corruption, arbitrary write, or privilege escalation.

Меры по смягчению последствий

Mitigation for this issue is either not available or the currently available options don't meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10kernelFix deferred
Red Hat Enterprise Linux 6kernelOut of support scope
Red Hat Enterprise Linux 7kernelFix deferred
Red Hat Enterprise Linux 7kernel-rtFix deferred
Red Hat Enterprise Linux 8kernelFix deferred
Red Hat Enterprise Linux 8kernel-rtFix deferred
Red Hat Enterprise Linux 9kernelFix deferred
Red Hat Enterprise Linux 9kernel-rtFix deferred

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-193
https://bugzilla.redhat.com/show_bug.cgi?id=2525369kernel: netfilter: nf_conntrack_irc: fix parse_dcc() off-by-one OOB read

5.3 Medium

CVSS3

Связанные уязвимости

CVSS3: 9.1
ubuntu
около 2 месяцев назад

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...

CVSS3: 9.1
nvd
около 2 месяцев назад

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 exclusi

CVSS3: 9.1
debian
около 2 месяцев назад

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

CVSS3: 9.1
redos
около 1 месяца назад

Уязвимость kernel-lt

CVSS3: 9.1
redos
около 1 месяца назад

Уязвимость kernel-lt

5.3 Medium

CVSS3