Description
In the Linux kernel, the following vulnerability has been resolved: nfsd: avoid leaking pre-allocated openowner on unconfirmed retry race When find_or_alloc_open_stateowner() encounters an unconfirmed owner, it calls release_openowner() and sets oo = NULL. Control then falls through past the `if (oo)` guard -- which would have freed any pre-allocated `new` -- and unconditionally executes `new = alloc_stateowner(...)`. If `new` was already allocated on a prior iteration, the pointer is silently overwritten and the previous allocation (slab object + owner name buffer) is leaked. This requires a race: two NFSv4.0 OPEN threads with the same owner string, where a concurrent thread inserts a new unconfirmed owner into the hash between retry iterations. The window is narrow but repeatable under adversarial conditions. Fix by adding `goto retry` after `oo = NULL` so the already-allocated `new` is reused on the next iteration rather than overwritten.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
23df17788c6212809848f836b10c4f85b16843a5 to < c9aefb2b5f11337c9202c5bd0c45d71198449718affected23df17788c6212809848f836b10c4f85b16843a5 to < 017a6150106b054cc84d1b0582d97bd3a74d4281affected23df17788c6212809848f836b10c4f85b16843a5 to < a10bf67fe06469a71a401f72f328237345d553c0affected23df17788c6212809848f836b10c4f85b16843a5 to < 57aee7a35bb12753057c5b65d72d1f46c0e95b07affected
Linux Linux
Default version status: affected
6.10affected0 to < 6.10unaffected6.12.95 to ≤ 6.12.*unaffected6.18.38 to ≤ 6.18.*unaffected7.1.3 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected