PT-2026-52339 · Linux · Linux
Published
2026-06-25
·
Updated
2026-06-25
·
CVE-2026-53244
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
VFS: fix possible failure to unlock in nfsd4 create file()
atomic create() in fs/namei.c drops the reference to the dentry
when it returns an error.
This behaviour was imported into dentry create() so that it
will drop the reference if an error is returned from atomic create(),
though not if vfs create() returns an error (in the case where
->atomic create is not supported).
The caller - nfsd4 create file() - is made aware of this by checking
path->dentry, which will either be a counted reference to a dentry, or
an error pointer.
However the change to use start creating()/end creating() (which landed
shortly before the dentry create() change landed, though was likely
developed around the same time) means that nfsd4 create file() needs a
valid dentry so that it can unlock the parent.
The net result is that if NFSD exports a filesystem which uses
->atomic create, and if a call to ->atomic create returns an error, then
nfsd4 create file() will pass an error pointer to end creating()
and the parent will not be unlocked.
Fix this by changing dentry create() to make sure path->dentry is always
a valid dentry, never an error-pointer. The actual error is already
returned a different way.
Note that if ->atomic create() returns a different dentry (which may not
be possible in practice) we are guaranteed (because it is only ever
provided by d spliace alias()) that it will have the same d parent and
so it will have the same effect when passed to end creating().
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux