# CVE-2025-40120: net: usb: asix: hold PM usage ref to avoid PM/MDIO + RTNL deadlock

> A deadlock in the Linux kernel AX88772 USB driver can cause a denial of service when runtime power management interacts with network interface operations.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 12 Nov 2025
- **Updated:** 11 May 2026
- **Also known as:** BELL-CVE-2025-40120, DEBIAN-CVE-2025-40120, GHSA-3wr8-h4v3-7726, ROOT-OS-DEBIAN-13-CVE-2025-40120, ROOT-OS-UBUNTU-2404-CVE-2025-40120, UBUNTU-CVE-2025-40120

## What is CVE-2025-40120?

CVE-2025-40120 is a denial of service vulnerability in Linux, published on 12 Nov 2025. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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

net: usb: asix: hold PM usage ref to avoid PM/MDIO + RTNL deadlock

Prevent USB runtime PM (autosuspend) for AX88772* in bind.

usbnet enables runtime PM (autosuspend) by default, so disabling it via
the usb_driver flag is ineffective. On AX88772B, autosuspend shows no
measurable power saving with current driver (no link partner, admin
up/down). The ~0.453 W -> ~0.248 W drop on v6.1 comes from phylib powering
the PHY off on admin-down, not from USB autosuspend.

The real hazard is that with runtime PM enabled, ndo_open() (under RTNL)
may synchronously trigger autoresume (usb_autopm_get_interface()) into
asix_resume() while the USB PM lock is held. Resume paths then invoke
phylink/phylib and MDIO, which also expect RTNL, leading to possible
deadlocks or PM lock vs MDIO wake issues.

To avoid this, keep the device runtime-PM active by taking a usage
reference in ax88772_bind() and dropping it in unbind(). A non-zero PM
usage count blocks runtime suspend regardless of userspace policy
(.../power/control - pm_runtime_allow/forbid), making this approach
robust against sysfs overrides.

Holding a runtime-PM usage ref does not affect system-wide suspend;
system sleep/resume callbacks continue to run as before.

## Which versions are affected by CVE-2025-40120?


## How do I fix CVE-2025-40120?

Apply the vendor's patch.

## Is CVE-2025-40120 being exploited?

There is no known exploitation of CVE-2025-40120 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2025-40120 and fix it if it is affected.

What it is: CVE-2025-40120 is a denial of service vulnerability in Linux, published on 12 Nov 2025. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2025-40120 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2025-40120/ (Markdown: https://insights.sbomify.com/CVE-2025-40120/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2025-40120
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-40120
- OSV: https://osv.dev/vulnerability/CVE-2025-40120

---
From sbomify Insights: https://insights.sbomify.com/CVE-2025-40120/
Summaries are generated and may contain mistakes; the official description above is the record.
