CVE feed → CVE-2026-31431

CVE-2026-31431 — Linux kernel algif_aead in-place revert

Linux kernel crypto subsystem vulnerability. The algif_aead userspace AEAD interface reverts to operating out-of-place after the previous in-place implementation mishandled associated data across user/kernel sphere boundaries. Local privilege escalation surface; not remotely exploitable. Patched in stable kernel branches; pick up via normal distro kernel updates.

TL;DR

At a glance

CVE IDCVE-2026-31431
SeverityHigh (CVSS 7.8)
CVSS 3.1 score7.8
CVSS vectorAV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-669 (Incorrect Resource Transfer Between Spheres)
Attack vectorLocal — requires existing local account
Privileges requiredLow (any local user that can socket(AF_ALG, …))
CISA KEV listedNo (as of 2026-05-11)
Published2026-04-22
Last updated (NVD)2026-05-11

What the kernel actually changed

From the upstream commit message:

crypto: algif_aead - Revert to operating out-of-place

This mostly reverts commit 72548b093ee3 except for the copying of the associated data. There is no benefit in operating in-place in algif_aead since the source and destination come from different mappings. Get rid of all the complexity added for in-place operation and just copy the AD directly.

Plain-English read: the algif_aead path's in-place mode had become a source of cross-sphere resource transfer bugs (CWE-669). The simpler out-of-place implementation removes the problematic code path entirely. The CVE is being assigned to the revert as the canonical security fix.

Per-distro fix status

Fix versions land via the normal kernel security update channels. Cross-reference the running kernel against your distro's tracker:

Distro Tracker Update path
Ubuntu 24.04 / 22.04 ubuntu.com/security/CVE-2026-31431 sudo apt update && sudo apt full-upgrade -y && sudo reboot
Debian 12 (Bookworm) security-tracker.debian.org sudo apt update && sudo apt full-upgrade -y && sudo reboot
Rocky Linux 9 / RHEL 9 access.redhat.com/security/cve/CVE-2026-31431 sudo dnf upgrade -y kernel && sudo reboot
AlmaLinux 9 errata.almalinux.org sudo dnf upgrade -y kernel && sudo reboot
Alpine security.alpinelinux.org sudo apk update && sudo apk upgrade && sudo reboot
Mainline / stable kernels kernel.org stable branches (see Authoritative sources below for the 8 backport commits) Update via your kernel-build pipeline

Quick check on a host

Determine the running kernel version and whether the system has a newer one installed but not yet booted:

# Running kernel:
uname -r

# Installed but not yet running (the answer tells you to reboot):
# Debian / Ubuntu
ls /boot/vmlinuz-* | sort -V | tail -1

# RHEL / Rocky / AlmaLinux
rpm -q --last kernel | head -2

# Reboot required indicator on Debian/Ubuntu:
[ -f /var/run/reboot-required ] && echo "REBOOT REQUIRED" || echo "No pending reboot"

Mitigations short of patching

If you can't reboot immediately, the exposure is limited to users who can open AF_ALG sockets. Two mitigations:

  1. Block AF_ALG via seccomp / LSM for any user account that doesn't need cryptographic kernel access (almost no userspace tool does — most use OpenSSL / libsodium directly, not AF_ALG).
  2. Unload the module if no service uses it: sudo rmmod algif_aead (will fail if in use; check with lsmod | grep algif_aead). Blacklist it to prevent reload: add blacklist algif_aead to /etc/modprobe.d/blacklist-algif.conf.

Both are workarounds, not fixes. Patch as soon as the kernel update window opens.

What Noxen does about this

Noxen flags every host whose installed kernel package is older than the per-distro fix version listed in its tracker. Because this is a kernel CVE, the package name varies by distro (linux-image-* on Debian/Ubuntu, kernel on RHEL-family), but Noxen's distro-aware matcher normalises both to the same CVE record.

Hosts that have the fix installed but haven't rebooted are flagged separately as "kernel updated but not yet running" so a reboot is queued explicitly rather than implicitly assumed after a package upgrade.

Authoritative sources

Related on Noxen

See what Noxen does about CVEs like this →   More on CVE management →