REDHAT-BUG-2462331: Medium severity iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10 vulnerability

Published Apr 26, 2026
·
Updated

AIONLYREPORT package: iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10 ------ Summary: Infinite Loop in ICMPv6 Router Advertisement Parsing: a crafted on-link ICMPv6 Router Advertisement with a zero-length option can hang iscsiuio in a non-terminating parse loop, and a short IPv6 payload can also underflow the option length and drive out-of-bounds reads. Requirements to exploit: An attacker must be able to send ICMPv6 Router Advertisements from the same L2 segment to an IPv6-enabled interface handled by iscsiuio. In the observed code, repeated exploitation may depend on the current IPv6 context because the handler returns early once IPV6FLAGSROUTERADVRECEIVED is set. Component affected: iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10, iscsiuio/src/uip/ipv6.c, ipv6icmphandlerouteradv() Version affected: iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10 where iscsiuio processes ICMPv6 Router Advertisements on an IPv6-enabled interface Patch available: no released package fix established; proposed patch included below Version fixed: unknown Upstream coordination: Not notified. CVSS: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - 6.5 (MEDIUM) AV:A - The attack requires delivery of a crafted Router Advertisement from the same L2 or adjacent network. AC:L - A malformed RA with a zero-length option or a short payload is sufficient; no race or special timing was established. PR:N - No authentication or prior access to the target host is required. UI:N - No user interaction is needed once the packet reaches the daemon. S:U - The impact is limited to the iscsiuio process handling the packet. C:N - The available evidence does not establish unauthorized disclosure of protected data. I:N - The available evidence does not establish data modification or code execution. A:H - The parser can enter a non-terminating loop and render the daemon unresponsive with sustained CPU use. Impact: Moderate. The confirmed outcome is denial of service against iscsiuio, not system compromise or arbitrary code execution. While the attack is straightforward once reachable, reachability is constrained by adjacent-network access and an IPv6-enabled deployment that processes Router Advertisements, so Red Hat's Moderate classification is a better fit than Important for the evidence currently available. Embargo: no Reason: This is a configuration-dependent adjacent-network denial of service with practical operational mitigations, and the available evidence does not support code execution, privilege escalation, or data exposure. Acknowledgement: Aisle Research Vulnerability Details: ipv6icmphandlerouteradv() derives the Router Advertisement option area length from the IPv6 payload length and then advances through options by adding icmpopt->len 8 to the current offset. The parser does not reject a zero-length option and does not verify that the payload length is at least the size of struct icmpv6routeradvert before subtracting it. c optlen = HOSTTONET16(ipv6->ipv6plen) - sizeof(struct icmpv6routeradvert); len = 0; while (len < optlen) { icmpopt = (struct icmpv6opthdr )((u8t )icmp + sizeof(struct icmpv6routeradvert) + len); ... len += icmpopt->len 8; } If icmpopt->len is 0, len never increases and the loop does not terminate, causing a sustained CPU-consuming hang in iscsiuio. Separately, if ipv6->ipv6plen is smaller than sizeof(struct icmpv6routeradvert) (16), the unsigned subtraction underflows and produces an oversized optlen, which can drive reads past the valid option data. This corresponds to a non-progress loop (CWE-835) and an unsigned length underflow with out-of-bounds read risk (CWE-191 / CWE-125). The available material supports the read overrun as a secondary risk, but does not establish memory corruption or confidentiality/integrity impact. The parser is reached through uip.c -> UIPNDPCALL -> ipv6rxpacket() -> ipv6icmprx() -> ipv6icmphandlerouteradv(). No RA-specific minimum-length, zero-length-option, or per-option bounds checks were identified before this loop. Steps to reproduce: 1. Run iscsiuio on an IPv6-enabled interface where it processes ICMPv6 Router Advertisements. 2. From an adjacent host on the same L2 segment, send an ICMPv6 Router Advertisement with type=134 and an option header whose len field is 0. 3. Observe that the parser does not return, CPU utilization stays elevated, and IPv6/NDP progress through iscsiuio stalls. 4. Optional variant: send an RA with ipv6plen < 16 to underflow optlen and drive invalid option walking before the hang or fault behavior. 5. Confirm loss of forward progress via process behavior, logs, or lack of further protocol activity. Mitigation: Until a fix is available, limit or filter ICMPv6 Router Advertisements from untrusted hosts on any L2 segment that reaches interfaces handled by iscsiuio. Where operationally acceptable, avoid exposing affected iscsiuio interfaces to untrusted adjacent IPv6 traffic or disable RA-driven IPv6 configuration on those interfaces. Proposed Fix: Add explicit minimum-length, zero-length-option, and per-option bounds checks before advancing through the Router Advertisement option list. diff diff --git a/iscsiuio/src/uip/ipv6.c b/iscsiuio/src/uip/ipv6.c @@ -850,6 +850,7 @@ static void ipv6icmphandlerouteradv(struct ipv6context context) struct icmpv6routeradvert icmp = (struct icmpv6routeradvert )((u8t )ipv6 + sizeof(struct ipv6hdr)); struct icmpv6opthdr icmpopt; + u16t payloadlen; u16t optlen; u16t len; char addrstr[INET6ADDRSTRLEN]; @@ -857,8 +858,13 @@ static void ipv6icmphandlerouteradv(struct ipv6context context) if (context->flags & IPV6FLAGSROUTERADVRECEIVED) return; optlen = HOSTTONET16(ipv6>ipv6plen) - - sizeof(struct icmpv6routeradvert); + payloadlen = HOSTTONET16(ipv6->ipv6plen); + if (payloadlen < sizeof(struct icmpv6routeradvert)) + return; + + optlen = payloadlen - sizeof(struct icmpv6routeradvert); icmpopt = (struct icmpv6opthdr )((u8t )icmp + sizeof(struct icmpv6routeradvert)); len = 0; - while (len < optlen) { + while (len + sizeof(struct icmpv6opthdr) <= optlen) { + u16t step; icmpopt = (struct icmpv6opthdr )((u8t )icmp + sizeof(struct icmpv6routeradvert) + len); + if (icmpopt->len == 0) + break; + step = (u16t)icmpopt->len 8; + if (len + step > optlen) + break; @@ -879,7 +885,7 @@ static void ipv6icmphandlerouteradv(struct ipv6context context) break; } len += icmpopt>len 8; + len += step; } ------ This report was generated using AI technology. Always review AI-generated content prior to use

Affected Software

1 affected component
iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10=iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Where operationally acceptable, disable/avoid RA-driven IPv6 configuration on interfaces that are reachable by untrusted adjacent IPv6 traffic so crafted Router Advertisements are not used for IPv6 configuration.

    iscsiuio (RA-driven IPv6 configuration) RA-driven IPv6 configuration on interfaces = disable
  2. Compensating control

    Until a fix is available, limit or filter ICMPv6 Router Advertisements so they cannot be delivered to the affected `iscsiuio` process on IPv6-enabled interfaces (e.g., restrict or block ICMPv6 RA from untrusted adjacent networks/L2 segments).

Event History

Apr 26, 2026
Data Sourced
via Red Hat·06:51 PM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems running iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10 are affected when iscsiuio handles an IPv6-enabled interface and processes ICMPv6 Router Advertisements.

2

What access does an attacker need?

An attacker must be able to send crafted ICMPv6 Router Advertisements from the same Layer 2 network segment. No privileges or user interaction are required.

3

What is the practical impact of exploitation?

A Router Advertisement containing a zero-length option can cause iscsiuio to enter a non-terminating parsing loop, producing a denial of service. A short IPv6 payload can also underflow the option length and lead to out-of-bounds reads.

4

Is a package update available?

No released package fix has been established for the affected version. A proposed patch is referenced, but the fixed version is unknown.

5

Can the issue be exploited repeatedly?

Repeated exploitation may depend on the current IPv6 state. In the observed code, the handler returns early after IPV6_FLAGS_ROUTER_ADV_RECEIVED is set.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203