CVE-2025-38588
kernel: ipv6: prevent infinite loop in rt6_nlmsg_size()
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · August 19, 2025
Updated · June 30, 2026
Description
In the Linux kernel, the following vulnerability has been resolved:
ipv6: prevent infinite loop in rt6_nlmsg_size()
While testing prior patch, I was able to trigger an infinite loop in rt6_nlmsg_size() in the following place:
list_for_each_entry_rcu(sibling, &f6i->fib6_siblings, fib6_siblings) { rt6_nh_nlmsg_size(sibling->fib6_nh, &nexthop_len); }
This is because fib6_del_route() and fib6_add_rt2node() uses list_del_rcu(), which can confuse rcu readers, because they might no longer see the head of the list.
Restart the loop if f6i->fib6_nsiblings is zero.
Statement
The bug in rt6_nlmsg_size() could cause an infinite loop when iterating over IPv6 route siblings, leading to CPU soft lockups and denial of service. It does not expose or alter data, so confidentiality and integrity remain unaffected. A local user with privileges to manipulate IPv6 routing tables (e.g. via netlink with CAP_NET_ADMIN) could potentially trigger this condition.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CVSS 3.1 · 5.5CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')