CVE-2026-31431 Linux Kernel Crypto Fix
Security advisory for CVE-2026-31431: Linux kernel crypto algif_aead vulnerability. Impact on Kubernetes nodes and how to patch container host kernels.
π‘ Quick Answer: CVE-2026-31431 is a Linux kernel vulnerability in the
crypto: algif_aeadsubsystem. The in-place operation introduced in commit72548b093ee3is reverted to out-of-place mode, fixing a complexity-related bug. Patch your Kubernetes node kernels via OS updates.
The Problem
The algif_aead kernel module provides the AF_ALG interface for AEAD (Authenticated Encryption with Associated Data) ciphers. A previous commit added in-place operation, but since source and destination come from different memory mappings, in-place operation added unnecessary complexity with no benefit β and introduced a vulnerability.
This affects any Linux kernel used as a Kubernetes node OS (Ubuntu, RHEL, Flatcar, Talos, etc.) where the algif_aead module is loaded or available.
Whoβs Affected
- Any Kubernetes node running a vulnerable kernel version
- Containers using AF_ALG sockets for AEAD encryption (uncommon but possible)
- Nodes where
algif_aeadmodule is loaded (check withlsmod | grep algif)
The Solution
Check If Your Nodes Are Vulnerable
# Check kernel version on all nodes
kubectl get nodes -o custom-columns=\
'NAME:.metadata.name,KERNEL:.status.nodeInfo.kernelVersion,OS:.status.nodeInfo.osImage'
# Check if algif_aead module is loaded on a specific node
kubectl debug node/<node-name> -it --image=busybox -- \
sh -c 'cat /proc/modules | grep algif'Patch Strategy by OS
Ubuntu/Debian nodes:
sudo apt update && sudo apt upgrade -y linux-image-generic
sudo rebootRHEL/Rocky/AlmaLinux nodes:
sudo dnf update kernel -y
sudo rebootFlatcar Container Linux:
# Flatcar auto-updates; verify update channel
cat /etc/flatcar/update.conf
update_engine_client -updateTalos Linux:
# Update Talos to a version with the patched kernel
talosctl upgrade --nodes <node-ip> \
--image ghcr.io/siderolabs/installer:v1.10.1OpenShift (RHCOS):
# Apply machine config update or wait for auto-update
oc get machineconfigpool
oc get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.nodeInfo.kernelVersion}{"\n"}{end}'Rolling Node Updates in Kubernetes
# Cordon, drain, update, uncordon β one node at a time
for NODE in $(kubectl get nodes -o name); do
NODE_NAME=$(echo $NODE | cut -d/ -f2)
echo "=== Updating $NODE_NAME ==="
kubectl cordon $NODE_NAME
kubectl drain $NODE_NAME --ignore-daemonsets --delete-emptydir-data --timeout=300s
# SSH and update kernel (adjust for your OS)
ssh $NODE_NAME 'sudo apt update && sudo apt upgrade -y linux-image-generic && sudo reboot'
# Wait for node to come back
kubectl wait --for=condition=Ready node/$NODE_NAME --timeout=600s
kubectl uncordon $NODE_NAME
echo "=== $NODE_NAME updated ==="
doneMitigation (If Patching Isnβt Immediate)
# Blacklist the algif_aead module if not needed
kubectl debug node/<node-name> -it --image=busybox -- \
sh -c 'echo "blacklist algif_aead" >> /host/etc/modprobe.d/blacklist-algif.conf'
# Or unload it if currently loaded
kubectl debug node/<node-name> -it --image=busybox -- \
sh -c 'modprobe -r algif_aead 2>/dev/null'Monitor with Trivy Operator
apiVersion: aquasecurity.github.io/v1alpha1
kind: ClusterComplianceReport
metadata:
name: kernel-cve-check
spec:
compliance:
- id: cve-2026-31431
title: "Linux kernel crypto algif_aead vulnerability"
severity: MEDIUMCommon Issues
Node wonβt drain
- Cause: PodDisruptionBudget blocks eviction
- Fix: Use
--disable-evictionflag (last resort) or adjust PDB temporarily
Kernel update requires reboot but node is critical
- Cause: Live patching doesnβt cover this fix
- Fix: Schedule maintenance window; use rolling updates with PDB protection
Best Practices
- Automate kernel patching β use kured (Kubernetes Reboot Daemon) for automatic reboots after updates
- Monitor kernel CVEs β subscribe to oss-security mailing list and Red Hat errata
- Use minimal kernel modules β blacklist unused modules to reduce attack surface
- Rolling updates β never patch all nodes simultaneously
- Test in staging β verify kernel update doesnβt break GPU drivers or storage modules
Key Takeaways
- CVE-2026-31431 affects the Linux kernel
crypto: algif_aeadsubsystem - Fix reverts unnecessary in-place operation complexity
- Patch node kernels via OS package manager and reboot
- Use cordon/drain/uncordon for zero-downtime rolling kernel updates
- Mitigate by blacklisting
algif_aeadmodule if not needed - Red Hat advisory: https://access.redhat.com/security/cve/cve-2026-31431

Recommended
Kubernetes Recipes β The Complete Book100+ production-ready patterns with detailed explanations, best practices, and copy-paste YAML. Everything in one place.
Get the Book βLearn by Doing
CopyPasteLearn β Hands-on Cloud & DevOps CoursesMaster Kubernetes, Ansible, Terraform, and MLOps with interactive, copy-paste-run lessons. Start free.
Browse Courses βπ Deepen Your Skills β Hands-on Courses
Courses by CopyPasteLearn.com β Learn IT by Doing
