Linux Kernel xfrm: Uninitialized Padding Leak in build_polexpire()
CVE-2026-31664 Published on April 24, 2026
xfrm: clear trailing padding in build_polexpire()
In the Linux kernel, the following vulnerability has been resolved:
xfrm: clear trailing padding in build_polexpire()
build_expire() clears the trailing padding bytes of struct
xfrm_user_expire after setting the hard field via memset_after(),
but the analogous function build_polexpire() does not do this for
struct xfrm_user_polexpire.
The padding bytes after the __u8 hard field are left
uninitialized from the heap allocation, and are then sent to
userspace via netlink multicast to XFRMNLGRP_EXPIRE listeners,
leaking kernel heap memory contents.
Add the missing memset_after() call, matching build_expire().
Products Associated with CVE-2026-31664
Want to know whenever a new CVE is published for Linux Kernel? stack.watch will email you.
Affected Versions
Linux:- Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and below ac6985903db047eaff54db929e4bf6b06782788e is affected.
- Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and below c221ed63a2769a0af8bd849dfe25740048f34ef4 is affected.
- Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and below eda30846ea54f8ed218468e5480c8305ca645e37 is affected.
- Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and below b1dfd6b27df35ef4f87825aa5f607378d23ff0f2 is affected.
- Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and below e1af65c669ebb1666c54576614c01a7f9ffcfff6 is affected.
- Version 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 and below 71a98248c63c535eaa4d4c22f099b68d902006d0 is affected.
- Version 2.6.12 is affected.
- Before 2.6.12 is unaffected.
- Version 6.1.169, <= 6.1.* is unaffected.
- Version 6.6.135, <= 6.6.* is unaffected.
- Version 6.12.82, <= 6.12.* is unaffected.
- Version 6.18.23, <= 6.18.* is unaffected.
- Version 6.19.13, <= 6.19.* is unaffected.
- Version 7.0, <= * is unaffected.