# CVE-2025-40212: nfsd: fix refcount leak in nfsd_set_fh_dentry()

> A refcount leak in the Linux kernel NFS server allows a malicious client to trigger a use-after-free, potentially causing a denial of service.

- **Severity:** Critical 9.8 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 24 Nov 2025
- **Updated:** 5 Aug 2026
- **Also known as:** BELL-CVE-2025-40212, DEBIAN-CVE-2025-40212, GHSA-cjm8-jghh-jmq3, ROOT-OS-DEBIAN-13-CVE-2025-40212, SUSE-SU-2026:20148-1, SUSE-SU-2026:20163-1, SUSE-SU-2026:20165-1, UBUNTU-CVE-2025-40212

## What is CVE-2025-40212?

CVE-2025-40212 is a critical use after free vulnerability in Linux, published on 24 Nov 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

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

nfsd: fix refcount leak in nfsd_set_fh_dentry()

nfsd exports a "pseudo root filesystem" which is used by NFSv4 to find
the various exported filesystems using LOOKUP requests from a known root
filehandle.  NFSv3 uses the MOUNT protocol to find those exported
filesystems and so is not given access to the pseudo root filesystem.

If a v3 (or v2) client uses a filehandle from that filesystem,
nfsd_set_fh_dentry() will report an error, but still stores the export
in "struct svc_fh" even though it also drops the reference (exp_put()).
This means that when fh_put() is called an extra reference will be dropped
which can lead to use-after-free and possible denial of service.

Normal NFS usage will not provide a pseudo-root filehandle to a v3
client.  This bug can only be triggered by the client synthesising an
incorrect filehandle.

To fix this we move the assignments to the svc_fh later, after all
possible error cases have been detected.

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


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `kernel-livepatch-SLE16_Update_2` | SUSE:Linux Enterprise Server 16.0 | All versions | 2-160000.1.1 |
| `kernel-livepatch-SLE16_Update_2` | SUSE:Linux Enterprise Server for SAP applications 16.0 | All versions | 2-160000.1.1 |
| `kernel-livepatch-SLE16-RT_Update_2` | SUSE:Linux Micro 6.2 | All versions | 2-160000.1.1 |
| `kernel-livepatch-SLE16_Update_2` | SUSE:Linux Micro 6.2 | All versions | 2-160000.1.1 |

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

Apply the vendor's patch.

## Is CVE-2025-40212 being exploited?

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

## Fix prompt for AI coding agents

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

What it is: CVE-2025-40212 is a critical use after free vulnerability in Linux, published on 24 Nov 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2025-40212 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-40212/ (Markdown: https://insights.sbomify.com/CVE-2025-40212/index.md)
```

## Sources

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

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