CVE-2026-98667: iio: frequency: adf4377: Fully initialize clk_init_data and clk_parent_data
In the Linux kernel, the following vulnerability has been resolved:
iio: frequency: adf4377: Fully initialize clkinitdata and clkparentdata
The clkinitdata structure contains several mutually-exclusive members for different methods to specify the possible parents of a clock, prompting drivers to initialize only the members they need. However, not initializing all members may cause subtle issues, which are only exposed when CONFIGINITSTACKALLPATTERN or CONFIGINITSTACKNONE is enabled.
adf4377clkregister() fills in init.parentdata, and assumes that init.parentnames is NULL. However, the latter is uninitialized, and thus may cause a crash.
Similarly, adf4377clkregister() fills in only parentdata.fwname, leaving other members of the clkparentdata structure uninitialized.
Make sure all members are fully initialized, to fix such bugs, and to avoid future breakage when converting drivers to a different method for specifying the parents.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Fully initialize all members of the clk_init_data and clk_parent_data structures in the iio frequency adf4377 driver; ensure unused mutually exclusive parent fields, including init.parent_names, are explicitly initialized to NULL rather than left uninitialized.
Event History
Frequently Asked Questions
Which systems are most likely to encounter this issue?
Systems using the Linux kernel ADF4377 frequency-synthesizer driver are relevant. The issue is exposed when the kernel is built with CONFIG_INIT_STACK_ALL_PATTERN or CONFIG_INIT_STACK_NONE.
What is the practical failure mode?
During ADF4377 clock registration, uninitialized clock-parent fields can be interpreted as valid data. In particular, an uninitialized init.parent_names member may cause a kernel crash.
What can be done if an updated kernel cannot be deployed immediately?
The provided information identifies the affected build configurations but does not specify a runtime mitigation. Avoiding kernels built with CONFIG_INIT_STACK_ALL_PATTERN or CONFIG_INIT_STACK_NONE may prevent the conditions under which this bug is exposed.