В версиях ядра Linux, выпущенных с 2017 по 2026 год, обнаружена уязвимость, связанная с поддержкой in-place операций для AEAD-шифрования в модуле algif_aead.
Злоумышленники могут изменять содержимое кеша страниц любого читаемого файла, что позволяет им повысить права до root и выйти за пределы контейнера.
Оценка CVSS: 7.8 High
В Managed Kubernetes уязвимостью могут быть затронуты операционные системы версий Ubuntu 24.04 и Ubuntu 22.04, которые развернуты на виртуальных машинах рабочих узлов.
Чтобы митигировать уязвимость CVE-2026-31431, заблокируйте модуль algif_aead одним из следующих способов:
Команда Managed Kubernetes актуализировала образы операционной системы, используемые для рабочих узлов кластеров. При обновлении группы узлов будут пересозданы виртуальные машины с патчем для блокировки algif_aead.
Создайте файл cloudru-emk8s-ds-copy-fail.yaml и скопируйте в него манифест:
apiVersion: apps/v1kind: DaemonSetmetadata:name: cve-2026-31431-mitigationnamespace: kube-systemlabels:app: cve-2026-31431-mitigationsecurity: security-mitigationspec:selector:matchLabels:name: cve-2026-31431-mitigationtemplate:metadata:labels:name: cve-2026-31431-mitigationspec:hostPID: truehostNetwork: trueinitContainers:- name: apply-mitigationimage: emk8s.cr.cloud.ru/ubuntu:22.04securityContext:privileged: truevolumeMounts:- name: host-rootmountPath: /hostcommand: ["/bin/bash", "-c"]args:- |set -euo pipefailMODULE="algif_aead"HOST="chroot /host"echo "--- Step 1: Blacklisting $MODULE ---"if ! grep -qs "algif_aead" /host/etc/modprobe.d/*.conf 2>/dev/null; thenprintf "install $MODULE /bin/false\nblacklist $MODULE\n" > /host/etc/modprobe.d/disable-$MODULE.confecho "✓ Created modprobe config to block algif_aead"elseecho "✓ Mitigation already present in modprobe config"fiecho "--- Step 2: Checking if $MODULE is loaded (lsmod) ---"if $HOST lsmod | grep -q "^$MODULE"; thenecho "Module is loaded. Attempting to unload..."if $HOST modprobe -r $MODULE 2>/dev/null; thenecho "✓ Success: Module unloaded gracefully."elseecho "✗ Module is busy. Searching for processes using AF_ALG sockets..."PIDS=$($HOST ss -xp | grep "af_alg" | grep -oP 'pid=\K[0-9]+' | sort -u || true)if [ -z "$PIDS" ]; thenecho "✗ No specific PIDs found, but module is busy. Manual intervention or reboot may be needed."elseecho "Killing processes: $PIDS"$HOST kill -9 $PIDS || truesleep 2fiif $HOST modprobe -r $MODULE 2>/dev/null; thenecho "✅ Success: Module unloaded after killing processes."elseecho "⚠️ ERROR: Failed to unload $MODULE even after cleanup."fifielseecho "✅ Module $MODULE is not loaded. Node is clean."ficontainers:- name: monitoring-agentimage: emk8s.cr.cloud.ru/ubuntu:22.04securityContext:privileged: trueresources:requests:cpu: 10mmemory: 16Milimits:memory: 32Micommand: ["/bin/bash", "-c"]args:- |while true; doif grep -q "^algif_aead " /proc/modules; thenecho "$(date): ⚠️ ALERT! Module algif_aead LOADED!"chroot /host modprobe -r algif_aead || echo "✗ Cannot unload live."fisleep 3600donevolumes:- name: host-roothostPath:path: /type: Directory
Выполните команду:
kubectl apply -f cloudru-emk8s-ds-copy-fail.yaml
Разворачиваемый DaemonSet приведет к созданию привилегированных контейнеров.
Проверьте статус DaemonSet:
kubectl get daemonset -n kube-system cve-2026-31431-mitigation
Проверьте применение исправления на узлах:
kubectl get pods -n kube-system -l app=cve-2026-31431-mitigation -o wide
Посмотрите логи контейнера, отвечающего за исправление уязвимости на узлах:
kubectl logs -n kube-system -l app=cve-2026-31431-mitigation -c apply-fix
Посмотрите логи контейнера, проверяющего наличие уязвимости на узлах:
kubectl logs -n kube-system -l app=cve-2026-31431-mitigation -c monitor