CVE-2026-31664

CVE-2026-31664

Medium · published April 24, 2026

CVSS v3.1
5.5
EPSS
0%
Percentile
1.7
In the wild
Unconfirmed
What it is

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().

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00120 · 1.7th percentile
Published
2026-04-24T19:16Z
Affected products (17)
ProductVersionsFixed in
linux/linux_kernel≥ 2.6.12.1, < 6.1.1696.1.169
linux/linux_kernel≥ 6.2, < 6.6.1356.6.135
linux/linux_kernel≥ 6.7, < 6.12.826.12.82
linux/linux_kernel≥ 6.13, < 6.18.236.18.23
linux/linux_kernel≥ 6.19, < 6.19.136.19.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (11)
EPSS history
Timeline
  • 24 APR 14:45Z
    xfrm: clear trailing padding in build_polexpire()
    cvelistv5