Skip to main content
← All vulnerabilities
CVE-2026-89673

nfsd: fix XDR padding calculation in ff_encode_getdeviceinfo

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.270, 5.15.221, 6.1.188, 4.15, 4.20, and 8 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix XDR padding calculation in ff_encode_getdeviceinfo nfsd4_ff_encode_getdeviceinfo() computes the da_addr_body reservation as 16 + netid_len + addr_len, but the subsequent xdr_encode_opaque() calls emit 8 + round_up(netid_len, 4) + round_up(addr_len, 4) bytes. The mismatch means the declared da_addr_body length exceeds the actual encoded data by 2-8 bytes on every flexfile GETDEVICEINFO reply, leaking stale reply-page content to the client and mis-aligning the subsequent version list decode. Use xdr_align_size() for each string length to match what xdr_encode_opaque() actually writes.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 3f1a2b0b2d575f39ff0bedb5411822fe7446a805 · fixed in 356decf074b82bac5564568203c12426dcea3470; From 19a648a07572c70fbe16faf0fafaf3dce9fd998a · fixed in 15460c8e6c9bc92cda8f68bc419ac082300ab3d6; From 6d08bd22fa2941a4d5ef45ed115dd00e484a93d7 · fixed in 9be67a6be48ddf2ebaa98c0df671690b8f9666e7; From 6372e2ee629894433fe6107d7048536a3280a284 · fixed in 88bce7e326c368d7df15126ccac537e54bebd467; From 6372e2ee629894433fe6107d7048536a3280a284 · fixed in 74015b7be806ad9e21d46f7bd2831df280c6c783; From 6372e2ee629894433fe6107d7048536a3280a284 · fixed in 41ebca28e17f84293650598f86bd69532ec1a8e0; From 6372e2ee629894433fe6107d7048536a3280a284 · fixed in 62e5949f0dd5ec837af144860ff908369df4c7c9; From 6372e2ee629894433fe6107d7048536a3280a284 · fixed in 8b989aaec85e1293a871d602590c951fe44b8647; From 5.10.195 · fixed in 5.10.270; From 5.15.132 · fixed in 5.15.221; From 6.1.53 · fixed in 6.1.188; From 4.14.326 · fixed in 4.15; From 4.19.295 · fixed in 4.20; From 5.4.257 · fixed in 5.5; From 6.4.16 · fixed in 6.5; From 6.5.3 · fixed in 6.6

  • Linux Linux

    6.6

  • KernelLinux

    From 6.4.16 · fixed in 6.6.157; fixed in 6.12.109; fixed in 6.18.50; fixed in 7.2.4; fixed in 7.3

References 8

git.kernel.org