ceph: fix race condition validating r_parent before applying state
CVE-2025-39927 · published 1 Oct 2025
How serious is it
- Severity: high, CVSS score 7.8 out of 10.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2025-39927?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
- Linux Linux: 9030aaf9bf0a1eee47a154c316c789e959638b0f to < dc5aad078abc416dd3d555c50f5308c16ba918a7, 9030aaf9bf0a1eee47a154c316c789e959638b0f to < db378e6f83ec705c6091c65d482d555edc2b0a72, 9030aaf9bf0a1eee47a154c316c789e959638b0f to < 2bfe45987eb346e299d9f763f9cd05f77011519f, 9030aaf9bf0a1eee47a154c316c789e959638b0f to < 15f519e9f883b316d86e2bb6b767a023aafd9d83
- Linux Linux: 2.6.34
How to check
- Find out whether you run the affected product and which version, then compare it with the versions above.
How to fix
Copies a prompt for Claude Code, Cursor or Codex that asks it to check whether you run this product.
- Apply the vendor's update or mitigation from the references below. If there is none yet, limit exposure of the affected service until there is.
- If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
In the Linux kernel, the following vulnerability has been resolved:
ceph: fix race condition validating r_parent before applying state
Add validation to ensure the cached parent directory inode matches the
directory info in MDS replies. This prevents client-side race conditions
where concurrent operations (e.g. rename) cause r_parent to become stale
between request initiation and reply processing, which could lead to
applying state changes to incorrect directory inodes.
[ idryomov: folded a kerneldoc fixup and a follow-up fix from Alex to
move CEPH_CAP_PIN reference when r_parent is updated:
When the parent directory lock is not held, req->r_parent can become
stale and is updated to point to the correct inode. However, the
associated CEPH_CAP_PIN reference was not being adjusted. The
CEPH_CAP_PIN is a reference on an inode that is tracked for
accounting purposes. Moving this pin is important to keep the
accounting balanced. When the pin was not moved from the old parent
to the new one, it created two problems: The reference on the old,
stale parent was never released, causing a reference leak.
A reference for the new parent was never acquired, creating the risk
of a reference underflow later in ceph_mdsc_release_request(). This
patch corrects the logic by releasing the pin from the old parent and
acquiring it for the new parent when r_parent is switched. This
ensures reference accounting stays balanced. ]
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- git.kernel.org/stable/c/dc5aad078abc416dd3d555c50f5308c16ba918a7
- git.kernel.org/stable/c/db378e6f83ec705c6091c65d482d555edc2b0a72
- git.kernel.org/stable/c/2bfe45987eb346e299d9f763f9cd05f77011519f
- git.kernel.org/stable/c/15f519e9f883b316d86e2bb6b767a023aafd9d83
Merged from CVE List. Last updated 25 Oct 2026. All vulnerabilities · RSS · JSON