UBUNTU-CVE-2026-89695: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: nfsd: cap decoded POSIX ACL count to bound sort cost nfsd4decodeposixacl() reads a u32 entry count off the wire and passes it straight to posixaclalloc() and sortpaclrange(). The latter is an O(n^2) bubble sort, so a client-chosen count drives unbounded CPU in the server's compound processing path. nfsd4decodeposixacl() xdrstreamdecodeu32(&count) / uncapped u32 / posixaclalloc(count, GFPKERNEL) sortpaclrange(acl, 0, count - 1) / O(n^2) bubble sort / The encoder side in the same file already rejects ACLs whose acount exceeds NFSACLMAXENTRIES, but the decoder introduced in commit 5fc51dfc2eb1 ("NFSD: Add support for XDR decoding POSIX draft ACLs") omitted the symmetric check. Fix by rejecting a wire count greater than NFSACLMAXENTRIES with nfserrinval, before any allocation, so the sort is bounded by NFSACLMAXENTRIES^2 comparisons. While we're in here, also fix the nfserrresource return if posixaclalloc() fails. That's not a legal error code for v4.1+. Change it to return nfserrjukebox as that's more appropriate for memory allocation failures.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Update nfsd4_decode_posixacl() to reject a wire count greater than NFS_ACL_MAX_ENTRIES with nfserr_inval before calling posix_acl_alloc(), and change the posix_acl_alloc() failure return from nfserr_resource to nfserr_jukebox.