CVE-2025-38086: net: ch9200: fix uninitialised access during mii_nway_restart

Published Jun 28, 2025
·
Updated

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

net: ch9200: fix uninitialised access during miinwayrestart

In miinwayrestart() the code attempts to call mii->mdioread which is ch9200mdioread(). ch9200mdioread() utilises a local buffer called "buff", which is initialised with controlread(). However "buff" is conditionally initialised inside controlread():

if (err == size) { memcpy(data, buf, size); }

If the condition of "err == size" is not met, then "buff" remains uninitialised. Once this happens the uninitialised "buff" is accessed and returned during ch9200mdioread():

return (buff[0] | buff[1] << 8);

The problem stems from the fact that ch9200mdioread() ignores the return value of controlread(), leading to uinit-access of "buff".

To fix this we should check the return value of controlread() and return early on error.

Other sources

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

net: ch9200: fix uninitialised access during miinwayrestart

In miinwayrestart() the code attempts to call mii->mdioread which is ch9200mdioread(). ch9200mdioread() utilises a local buffer called "buff", which is initialised with controlread(). However "buff" is conditionally initialised inside controlread():

if (err == size) { memcpy(data, buf, size); }

If the condition of "err == size" is not met, then "buff" remains uninitialised. Once this happens the uninitialised "buff" is accessed and returned during ch9200mdioread():

return (buff[0] | buff[1] << 8);

The problem stems from the fact that ch9200mdioread() ignores the return value of controlread(), leading to uinit-access of "buff".

To fix this we should check the return value of controlread() and return early on error.

MITRE

Affected Software

15 affected components
Linux Linux kernel
Linux Linux kernel>=4.3.1<5.4.295
Linux Linux kernel>=5.5<5.10.239
Linux Linux kernel>=5.11<5.15.186
Linux Linux kernel>=5.16<6.1.142
Linux Linux kernel>=6.2<6.6.95
Linux Linux kernel>=6.7<6.12.35
Linux Linux kernel>=6.13<6.15.4
Linux Linux kernel=4.3
Linux Linux kernel=4.3-rc3
Linux Linux kernel=4.3-rc4
Linux Linux kernel=4.3-rc5
Linux Linux kernel=4.3-rc6
Linux Linux kernel=4.3-rc7
Debian Debian Linux=11.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    In mii_nway_restart(), check the return value of control_read(); if the call fails (e.g., the condition err == size is not met), return early instead of proceeding to use the local buffer 'buff', preventing uninitialised access during mii_nway_restart().

    Linux kernel (net: ch9200) mii_nway_restart() control_read() return-value handling = return early on error (check ch9200_mdio_read() / control_read() return value)

Event History

Jun 28, 2025
CVE Published
via MITRE·07:52 AM
Data Sourced
via MITRE·07:52 AM
Description
Data Sourced
via Red Hat·08:01 AM
DescriptionSeverityAffected Software
Data Sourced
via NVD·08:15 AM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-38086?

CVE-2025-38086 is classified as a medium severity vulnerability due to the potential for uninitialized memory access.

2

What does CVE-2025-38086 affect?

CVE-2025-38086 specifically affects the Linux kernel and is related to the ch9200 network driver.

3

How do I fix CVE-2025-38086?

To fix CVE-2025-38086, you should update your Linux kernel to the latest stable version provided by your distribution.

4

Is CVE-2025-38086 a local or remote vulnerability?

CVE-2025-38086 is considered a local vulnerability as it requires local access to exploit.

5

When was CVE-2025-38086 published?

CVE-2025-38086 was published as part of the ongoing security updates for the Linux kernel.

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