Skip to main content
VulnerabilityPublished Updated

CVE-2026-89744: Linux kernel · device property: fix infinite loop in fwnode_for_each_child_node()

Affects Linux kernelSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 8.4 High · fixed in f4ae79b5f00130aacaddb1f3eb2e5ef711fbf9e0 : patch Linux kernel soon.

Data as of 30 Oct 2026, 12:49 UTC

CVSS 3.1 base score
8.4High
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (Linux)CVSS 3.18.4
Patch
Available – fixed in f4ae79b5f00130aacaddb1f3eb2e5ef711fbf9e0, ba69d892ff4e4a58cc12a2cae106b112db3306cc, 1900692555826753adab8799a1a8d50bb1ee200c +12
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 11 Sep 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • >=5.10.253 <5.10.273
  • >=5.15.203 <5.15.224
  • >=6.1.167 <6.1.188
  • >=6.6.130 <6.6.157
  • >=6.12.78 <6.12.109
  • >=6.18.19 <6.18.50
  • >=6.19.9 <6.20
Fixed in
  • f4ae79b5f00130aacaddb1f3eb2e5ef711fbf9e0
  • ba69d892ff4e4a58cc12a2cae106b112db3306cc
  • 1900692555826753adab8799a1a8d50bb1ee200c
  • 04004fa33730031392d987a9c1bbd8a0e1c4794b
  • 770c9bde93c8bb644f590743e9fbae3492a20f9e
  • 45a8fc4a12751833ed3868095d18200a85336760
  • 20ed517e416df89448029293304c9e180c26cd4b
  • 9cb6b223ef02cb5c9777a852ae1ecf5796987eb6
  • 6.20
  • 6.18.50
  • 6.12.109
  • 6.6.157
  • 6.1.188
  • 5.15.224
  • 5.10.273
LinuxLinuxAffected
  • =7.0
Fixed in–

Description

In the Linux kernel, the following vulnerability has been resolved: device property: fix infinite loop in fwnode_for_each_child_node() When iterate over children of a fwnode that has a secondary fwnode, fwnode_get_next_child_node() can enter an infinite loop if the secondary fwnode has more than one child. Parent Child (Primary fwnode) FWa: {FWa1, FWa2, FWa3} (Secondary fwnode) FWb: {FWb1, FWb2} In this case: ┌─> fwnode_get_next_child_node(FWa, FWa1) │ - fwnode_call_ptr_op(FWa, get_next_child_node, FWa1) returns FWa2 │ │ ... │ │ fwnode_get_next_child_node(FWa, FWa3) │ - fwnode_call_ptr_op(FWa, get_next_child_node, FWa3) returns NULL │ - fwnode_call_ptr_op(FWb, get_next_child_node, FWa3) returns FWb1 │ │ fwnode_get_next_child_node(FWa, FWb1) │ - fwnode_call_ptr_op(FWa, get_next_child_node, FWb1) returns FWa1 └────┘ This cause fwnode_for_each_child_node() to loop indefinitely, reapeatedly output {FWa1, FWa2, FWa3, FWb1, FWa1, ...}. The root cause is that when the current child (FWb1) belongs to the secondary fwnode, calling get_next_child_node() on the parimary fwnode incorrectly returns the first child (FWa1) again instead of NULL. Fix this by dynamically checking the parent fwnode of the current child before calling get_next_child_node(). This approach follows the pattern established in commit b5b41ab6b0c1 ("device property: Check fwnode->secondary in fwnode_graph_get_next_endpoint()").

References

Community reviews

Loading reviews…