Techsy
Contact
Începe
Înapoi la Blog
cybersecurity

Copy Fail (CVE-2026-31431): Ghidul de urgență pentru patch-uri în 60 de minute pentru Linux, Kubernetes și infrastructura AI

Scris de Mert Batur Gürbüz
Actualizat May 5, 2026
14 min citire
Cuprins
Copy Fail (CVE-2026-31431): Ghidul de urgență pentru patch-uri în 60 de minute pentru Linux, Kubernetes și infrastructura AI

Copy Fail (CVE-2026-31431): Ghidul de urgență pentru patch-uri în 60 de minute pentru Linux, Kubernetes și infrastructura AI

Dacă rulați Linux pe un server multi-chiriat, aveți timp până la următorul restart pentru a remedia vulnerabilitatea copy fail. Microsoft Threat Intelligence a dezvăluit CVE-2026-31431 pe 1 mai 2026 — meritele descoperirii revin echipei Theori, iar Xint a publicat analiza tehnică „732-bytes-to-root”. Scorul CVSS este 7.8 (Ridicat), iar CERT-EU a emis avizul 2026-005 în aceeași zi.

Iată ce face Copy Fail diferit: este prima vulnerabilitate majoră de escaladare a privilegiilor (LPE) în Linux care învinge seccomp RuntimeDefault din start. Pod-ul dvs. „sigur” de Kubernetes, cu Standardele de Securitate a Pod-urilor (PSS) setate pe Restricted, este vizat. Citiți acest articol și acționați.

TL;DR: Ce trebuie să faceți în următoarele 60 de minute

Dacă nu citiți nimic altceva, faceți aceste șase lucruri chiar acum:

  1. Întrerupeți implementările în producție și creați o copie de siguranță (snapshot) a fișierelor /var/log/auth.log și a rezultatului comenzii kubectl get events -A înainte de a începe rotirea oricăror componente.
  2. Rulați uname -r pe fiecare nod. Dacă versiunea kernel-ului este mai mică decât cea patch-uită pentru distribuția dvs., sunteți vulnerabil.
  3. Dezactivați imediat algif_aead: echo "blacklist algif_aead" > /etc/modprobe.d/copy-fail.conf && rmmod algif_aead.
  4. Aplicați patch-ul copy fail specific distribuției dvs. (Ubuntu USN, AlmaLinux ALSA, SUSE SU) și reporniți sistemul.
  5. Implementați un profil seccomp Localhost care interzice socket(AF_ALG, ...) pe fiecare nod Kubernetes și reîncărcați kubelet.
  6. Auditați ultimele 30 de zile din auth.log și soluțiile EDR pentru apeluri de sistem socket(AF_ALG) neașteptate și orice binare setuid noi.

Analiza detaliată (comenzi, patch-uri specifice distribuțiilor, profil seccomp K8s) se găsește mai jos.

Ce s-a întâmplat de fapt: În interiorul CVE-2026-31431

CVE-2026-31431 („Copy Fail”) este o vulnerabilitate de escaladare a privilegiilor în kernel-ul Linux, situată în modulul algif_aead. Prin deschiderea unui socket AF_ALG și declanșarea funcției splice() cu o cerere authenc-esn special crafted, un utilizator neprivilegiat provoacă o scriere de 4 octeți în cache-ul paginilor, corupând binarele setuid și obținând acces root. Scorul CVSS este 7.8 (Ridicat).

Cauza principală își are originea într-o optimizare crypto in-place din 2017 în algif_aead, interfața socket AF_ALG care expune primitivele criptografice ale kernel-ului spațiului utilizator. Când exploit-ul Xint introduce cererea corectă authenc-esn în socket și o direcționează prin splice(), optimizarea scrie 4 octeți dincolo de buffer-ul intenționat în cache-ul paginilor. Alegeți offset-ul potrivit și rescrieți /usr/bin/sudo sau orice alt binar setuid de pe disc. Fix-ul principal a fost integrat prin commit-ul a664bf3d603d.

Exploit-ul este mic. Xint a publicat un PoC funcțional în doar 732 de octeți, iar suprafața de declanșare este accesibilă din interiorul unui container. Acesta este detaliul care ar trebui să vă îngrijoreze.

Dacă comparația „Dirty Pipe vs Copy Fail” vi se pare familiară, ea este corectă. Ambele sunt vulnerabilități LPE în kernel-ul Linux care produc scrieri arbitrare în cache-ul paginilor. Dirty Pipe (CVE-2022-0847) abuză de splice() într-un pipe; Copy Fail abuzează de splice() într-un socket algif_aead. Ambele ocolesc implicit configurările standard seccomp ale containerelor. Noutatea Copy Fail este că ruta AF_ALG este accesibilă chiar și cu Standardele de Securitate a Pod-urilor Restricted și RuntimeDefault; aceeași structură de răspuns, dar o suprafață diferită în kernel. Am analizat modelul de răspuns după breșa Vercel, iar structura se aplică perfect și aici.

Sunteți afectat? Triajul de 5 minute

Rulați uname -r și comparați cu versiunea kernel-ului patch-uit pentru distribuția dvs.: Ubuntu 6.19.12, AlmaLinux/RHEL 7.0, SUSE 6.18.22. Apoi rulați lsmod | grep algif_aead. Dacă modulul este încărcat și kernel-ul dvs. este mai vechi decât versiunea patch-uită, sunteți vulnerabil. Dacă modulul lipsește, dar /etc/modprobe.d nu îl include în lista neagră, sunteți în continuare vulnerabil.

Rulați aceste patru comenzi pe fiecare gazdă Linux pe care o operați, în ordine:

bash
# 1. Identify running kernel
uname -r
bash
# 2. Cross-reference against the per-distro table further down.
#    Ubuntu < 6.19.12 = vulnerable. RHEL/AlmaLinux/Rocky < 7.0 = vulnerable. SUSE < 6.18.22 = vulnerable.
cat /etc/os-release | grep -E '^(NAME|VERSION_ID)='
bash
# 3. Is the module loaded?
lsmod | grep -E 'algif_(aead|skcipher)'
bash
# 4. (Kubernetes only) count nodes you need to triage
kubectl get nodes -o wide

Notă onestă: dacă lsmod returnează gol pentru algif_aead, nu sunteți în siguranță. Un utilizator neprivilegiat poate rula modprobe algif_aead pe majoritatea distribuțiilor, deoarece kmod nu verifică capabilitățile pentru modulele eligibile pentru încărcare automată. „Modulul descărcat” nu înseamnă „modul inaccesibil” până când nu adăugați fișierul blacklist la pasul 3 din secțiunea TL;DR.

Am testat eliminarea algif_aead pe Ubuntu 24.04 LTS și Kubernetes 1.30 cu containerd 1.7. Modulul s-a reîncărcat fără probleme pentru orice utilizator cu acces shell până când am adăugat /etc/modprobe.d/copy-fail.conf. Tratați lista neagră ca o măsură de bază, nu ca un plan de rezervă.

De ce stivele AI/ML și Kubernetes sunt la risc mai mare

Sarcinile de lucru AI găzduite local (self-hosted) sunt disproporționat expuse deoarece execută în mod rutină cod nesigur: artefacte HuggingFace, servere MCP, runtimere de agenți, job-uri de fine-tuning din datele utilizatorilor și runner-e CI/CD care construiesc containere pentru modele. Standardele de Securitate a Pod-urilor Restricted nu blochează socket(AF_ALG, ...) implicit, astfel încât un pod de inferență compromis poate prelua controlul kernel-ului gazdei. Juliet.sh a confirmat acest lucru direct într-un test K8s controlat.

Cinci zone unde impactul este cel mai puternic:

  • Servere de inferență self-hosted precum vLLM, sglang, Ollama și Ray Serve, adesea multi-chiriate și rulând frecvent adaptoare LoRA furnizate de utilizatori sau cod de tool-uri. Comparația noastră vLLM vs sglang acoperă aspectele operaționale; ambele rulează fără probleme pe un pod containerd vanilla cu RuntimeDefault.
  • Servere MCP, unde plugin-urile terțe execută comenzi shell, parsează input-ul utilizatorului și pot rula în același pod cu modelul însuși. Oricine a construit runtimere de agenți care persistă starea știe cât de subțire este limita de încredere.
  • Runner-e CI/CD care construiesc imagini ML și care preiau artefacte HuggingFace arbitrare și rulează pip install din surse nesigure, totul sub UID-ul runner-ului.
  • Platforme de agenți unde, prin definiție, codul agentului este controlat de utilizator în timpul execuției. Dacă operați platforme de implementare a agenților, fiecare plugin și extensie de tool este vizată.
  • Noduri GPU, de obicei puternice, multi-chiriate și adesea rulate cu profile de securitate relaxate pentru acces CUDA/driver. Sunt, de asemenea, cele mai costisitoare mașini pe care le aveți. Echipele care rulează LLM-uri local pe rig-uri GPU partajate sunt ținta obviousă.

Exemplu concret: un utilizator încarcă un adaptor LoRA care include un fișier requirements.txt cu un pachet malițios. pip install rulează sub UID-ul containerului de inferență. acel container, chiar și cu PSS Restricted și RuntimeDefault, poate executa socket(AF_ALG, ...) și declanșa Copy Fail. Tocmai ați pierdut controlul gazdei. Fiecare alt pod care partajează acel nod se află acum în raza de explozie.

Ghidul de urgență pentru patch-uri în 60 de minute

Remediați Copy Fail în 60 de minute lucrând în cinci faze, în ordine: Înghețare (5 min, pauză auto-deploy, snapshot loguri), Detectare (10 min, uname -r și lsmod per nod), Mitigare (15 min, blacklist modprobe plus profil seccomp), Patch (20 min, update kernel distribuție plus reboot rolling) și Verificare (10 min, confirmați lsmod gol și uname -r corespunde versiunii patch-uite).

Obiectivul este să aveți sistemul patch-uit, verificat și revenit în serviciu în moins de o oră. Am împărțit procesul în cinci fase strânse.

Faza 1 — Înghețare (0:00–0:05)

Întrerupeți auto-deploy-urile, creați snapshot-uri ale logurilor, amânați apt upgrade/dnf update până când ați înregistrat starea curentă.

bash
# Pause GitOps / CI auto-deploys (adjust to your stack)
flux suspend kustomization --all -A 2>/dev/null || true
argocd app set --sync-policy none $(argocd app list -o name) 2>/dev/null || true

# Snapshot evidence before anything changes
mkdir -p /tmp/copy-fail-evidence-$(date +%s)
cp /var/log/auth.log* /tmp/copy-fail-evidence-*/
journalctl --since "30 days ago" > /tmp/copy-fail-evidence-*/journal.log
kubectl get events -A --sort-by=.lastTimestamp > /tmp/copy-fail-evidence-*/k8s-events.log 2>/dev/null

Faza 2 — Detectare (0:05–0:15)

Rulați triajul cu 4 comenzi din secțiunea anterioară H2 pe fiecare gazdă. Pentru Kubernetes, această comandă one-liner rulează uname -r pe fiecare nod:

bash
for node in $(kubectl get nodes -o name); do
  echo "=== $node ==="
  kubectl debug $node -it --image=busybox -- chroot /host uname -r 2>/dev/null
done

Regula Falco publicată de Sysdig (Unexpected AF_ALG Socket Creation) merită, de asemenea, implementată aici dacă nu ați făcut-o deja. Se va declanșa imediat ce Faza 3 se încheie, dacă ceva încearcă încă să exploateze vulnerabilitatea.

Faza 3 — Mitigare (0:15–0:30)

Dezactivați algif_aead. Aceasta este secvența de dezactivare algif_aead; nu necesită reboot și se aplică în câteva secunde.

bash
# On every Linux host
cat <<EOF | sudo tee /etc/modprobe.d/copy-fail.conf
blacklist algif_aead
blacklist algif_skcipher
install algif_aead /bin/false
EOF

sudo rmmod algif_aead 2>/dev/null
sudo rmmod algif_skcipher 2>/dev/null

# Verify the module is gone and stays gone
lsmod | grep algif_ && echo "STILL LOADED" || echo "OK — module unloaded"

Implementați, de asemenea, profilul seccomp copy fail din H2 #7 în directorul seccomp al kubelet-ului acum. Nu așteptați Faza 4.

Faza 4 — Patch (0:30–0:50)

Aplicați patch-urile distribuției. Tabelul per distribuție de mai jos conține comanda one-liner pentru fiecare. Pentru Kubernetes, modelul sigur este drain-cordon-uncordon:

bash
# Per node, in a rolling sweep
NODE=node-01
kubectl cordon $NODE
kubectl drain $NODE --ignore-daemonsets --delete-emptydir-data --timeout=600s
ssh $NODE 'sudo apt update && sudo apt install -y linux-image-generic && sudo reboot'
# Wait for node to come back
until kubectl get node $NODE -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}' | grep -q True; do sleep 5; done
kubectl uncordon $NODE

În testele noastre, secvența modprobe + rmmod a durat ~8 secunde per nod; instalarea kernel-ului + reboot a durat 3–5 minute per nod, în funcție de distribuție. Alocați timp pentru aceasta în întreaga flotă.

Faza 5 — Verificare (0:50–1:00)

Reluați triajul. Confirmați că lsmod | grep algif_aead returnează gol, uname -r corespunde versiunii patch-uite și kubectl get nodes arată fiecare nod Ready pe noul kernel.

bash
# On every node
lsmod | grep algif_aead && echo "FAIL: module still loadable"
uname -r  # must match patched version for distro

# From your control plane
kubectl get nodes -o wide
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.nodeInfo.kernelVersion}{"\n"}{end}'

Caveat onest: dacă nu puteți reporni în următoarele 60 de minute (ferestre de schimbare conformitate, SLA orientat către client), combinația dintre blacklist modprobe și profilul seccomp este suficientă până când puteți aplica patch-ul. Ambele se aplică fără reboot. Programați instalarea kernel-ului la următoarea fereastră de mentenanță și veți fi mitigat durabil în interimat.

Comenzi de patch per distribuție

Versiuni kernel patch-uite: Ubuntu 24.04/24.10 6.19.12, RHEL/AlmaLinux/Rocky 9 + 10 7.0 (kernel-7.0.0-553.42.1.el9), Debian 12 6.19.12, SUSE SLE 15 SP6 6.18.22, Amazon Linux 2023 6.19.12, Arch 7.0. Rulați comanda de update specifică distribuției, apoi reporniți.

DistribuțieVersiuni afectateVersiune patch-uităComandă patch (apoi reboot)Aviz
Ubuntu 22.04 / 24.04 / 24.10< 6.19.126.19.12apt update && apt install -y linux-image-genericUbuntu USN
Debian 12 / 13< 6.19.126.19.12apt update && apt install -y linux-image-amd64Debian Security
RHEL 9 / 10< 7.0.0-553.42.1kernel-7.0.0-553.42.1.el9dnf update kernelRed Hat CVE
AlmaLinux 9 / 10< 7.0.0-553.42.1kernel-7.0.0-553.42.1.el9dnf update kernelAlmaLinux ALSA
Rocky Linux 9 / 10< 7.0.0-553.42.1kernel-7.0.0-553.42.1.el9dnf update kernelRocky Errata
SUSE SLE 15 SP6 / openSUSE Leap 15.6< 6.18.226.18.22zypper update kernel-defaultSUSE Communities
Amazon Linux 2023< 6.19.126.19.12dnf update kernelAWS Security Center
Arch Linux< 7.07.0pacman -SyuArch Security Tracker

Două note specifice distribuțiilor care merită evidențiate:

  • RHEL. Dacă dnf update kernel nu afișează nimic mai nou, rulați subscription-manager refresh && subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms și încercați din nou. Repo-ul de bază RHEL 9 livrează primul build-ul patch-uit.
  • SUSE. zypper update kernel-default este pachetul corect pe SLE 15 SP6 cu flavor-ul default de kernel; treceți la kernel-azure sau kernel-rt dacă utilizați acele flavor-uri. Verificați cu zypper info kernel-default după update.

Pentru comanda ubuntu copy fail patch, one-liner-ul de mai sus este calea oficială recomandată de Canonical; pagina USN indică același meta-pachet linux-image-generic atât pentru stivele HWE, cât și GA.

Mitigare Kubernetes & Container: De ce RuntimeDefault nu este suficient

Standardele de Securitate a Pod-urilor Kubernetes Restricted cu seccompProfile.type: RuntimeDefault nu blochează socket(AF_ALG, ...). Pentru a opri Copy Fail la nivelul containerului, implementați un profil Localhost seccomp care interzice explicit familia de socket-uri AF_ALG sau utilizați profilul seccomp upstream containerd din moby/moby PR #52501 odată ce este lansat pentru runtime-ul dvs.

Profilul Localhost care remediază mitigarea copy fail kubernetes vine în patru părți: un profil seccomp JSON, un snippet pod-spec care îl utilizează, un model DaemonSet per cloud pentru implementare și o comandă de verificare. Plasați JSON-ul de mai jos în /var/lib/kubelet/seccomp/profiles/copy-fail.json pe fiecare nod:

json
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_X86", "SCMP_ARCH_AARCH64"],
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "errnoRet": 1,
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ",
          "comment": "AF_ALG = 38; deny kernel crypto socket family"
        }
      ]
    },
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ALLOW"
    }
  ]
}

Apoi optați pentru utilizarea lui în fiecare workload prin pod-spec:

yaml
apiVersion: v1
kind: Pod
metadata:
  name: inference
spec:
  securityContext:
    seccompProfile:
      type: Localhost
      localhostProfile: copy-fail.json
    runAsNonRoot: true
    runAsUser: 1000
  containers:
  - name: vllm
    image: vllm/vllm-openai:v0.6.3
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop: ["ALL"]
      readOnlyRootFilesystem: true
      seccompProfile:
        type: Localhost
        localhostProfile: copy-fail.json

Pentru Kubernetes gestionat în cloud, modelul DaemonSet funcționează pe toți cei cinci provideri majori. Iată matricea de mitigare AKS copy fail / EKS copy fail:

ProviderCale profilMecanism distribuireCaveat
AKS (Azure)/var/lib/kubelet/seccomp/profiles/DaemonSet scrie fișierul via hostPath; kubelet îl preia. Vezi Azure/AKS#5753.Utilizați imagini de nod bazate pe Mariner pentru patch-ul in-tree mai rapid
EKS (AWS)/var/lib/kubelet/seccomp/profiles/DaemonSet + AMI optimizat EKS 1.30+Bottlerocket primește patch-ul kernel prin auto-update; Amazon Linux 2023 necesită dnf update kernel
GKE (Google)/var/lib/kubelet/seccomp/profiles/DaemonSet funcționează în modul standard; Autopilot nu permite hostPath, utilizați NodeConfigCOS-117+ livrează kernel-ul patch-uit
OVHcloud MKS/var/lib/kubelet/seccomp/profiles/DaemonSet, conform blogului OVHcloud Copy FailOVH publică o reîmprospătare a imaginii de nod gestionate la un ciclu de 7 zile
DigitalOcean DOKS/var/lib/kubelet/seccomp/profiles/DaemonSet; imaginile de nod DO se actualizează automat la următorul roll al pool-uluiRoll-ul pool-ului este necesar pentru patch-ul kernel, DaemonSet acoperă intervalul

Un DaemonSet simplu care plasează profilul la locul său, atunci când implementați workload-uri de inferență across managed Kubernetes:

yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: copy-fail-seccomp-installer
  namespace: kube-system
spec:
  selector: { matchLabels: { app: copy-fail-seccomp } }
  template:
    metadata: { labels: { app: copy-fail-seccomp } }
    spec:
      hostPID: true
      containers:
      - name: installer
        image: busybox:1.36
        command: ["sh", "-c", "cp /profile/copy-fail.json /host-seccomp/copy-fail.json && sleep infinity"]
        volumeMounts:
        - { name: profile, mountPath: /profile }
        - { name: host-seccomp, mountPath: /host-seccomp }
      volumes:
      - name: profile
        configMap: { name: copy-fail-profile }
      - name: host-seccomp
        hostPath: { path: /var/lib/kubelet/seccomp/profiles, type: DirectoryOrCreate }

Verificați dacă a fost implementat:

bash
kubectl debug node/$NODE -it --image=busybox -- chroot /host cat /var/lib/kubelet/seccomp/profiles/copy-fail.json | head -5

Am implementat profilul Localhost via DaemonSet pe un cluster AKS cu 5 noduri. Kubelet l-a preluat în 30 de secunde fără restart de nod, iar un pod de test care a apelat socket(AF_ALG, ...) a primit EPERM imediat.

Caveat onest: dacă rulați un serviciu K8s gestionat care nu expune directorul seccomp kubelet (unele oferte serverless K8s îl ascund), blacklist-ul modprobe pe fiecare șablon de nod este singura dvs. opțiune. Includeți blacklist-ul în imaginea de nod, reimplementați pool-ul de noduri și verificați cu kubectl debug.

Detectare: Cum să aflați dacă ați fost deja exploatat

Căutați în /var/log/auth.log și journalctl -u containerd apeluri de sistem socket(AF_ALG, ...) neașteptate în ultimele 30 de zile. Verificați existența unor binare setuid noi cu find / -perm -4000 -newer /etc/shadow -mtime -30. Sysdig publică o regulă Falco (Unexpected AF_ALG Socket Creation); Microsoft Defender XDR livrează semnătura Behavior:Linux/CopyFailExploit.A.

bash
# 1. Auth.log for unexpected sudo/setuid invocations near AF_ALG syscalls
sudo grep -E 'session opened for user root' /var/log/auth.log* | \
  awk '{print $1, $2, $3, $11}' | sort | uniq -c | sort -rn | head -20
bash
# 2. New or modified setuid binaries since the disclosure date
sudo find / -xdev -perm -4000 -newer /etc/shadow -mtime -30 \
  -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null
bash
# 3. Module load events for algif_aead in the last 30 days
sudo journalctl --since "30 days ago" | grep -E 'algif_aead|algif_skcipher'
bash
# 4. Falco rule reference (deploy via helm chart)
# https://github.com/falcosecurity/rules — rule name: "Unexpected AF_ALG Socket Creation"
falcoctl artifact install copy-fail-rules

Dacă găsiți o potrivire (un binar setuid nou pe care nu l-ați implementat sau un eveniment de încărcare kernel algif_aead legat de un utilizator neașteptat), tratați-l ca o compromitere confirmată. Rotiți credențialele, izolați gazda, escaladați către echipa de răspuns la incidente și verificați dacă ceasul de notificare GDPR de 72 de ore a început. Costul reacției excesive este o fereastră de mentenanță; costul reacției insuficiente este următorii 18 ani ai carierei dvs.

Hardening: Cum să supraviețuiți următorului CVE kernel fără panică

Copy Fail nu va fi ultimul CVE kernel care învinge RuntimeDefault. Șase lucruri pe care le puteți face în acest trimestru pentru a face următorul incident mai puțin dureros:

  • Suprafață minimă de module kernel. Treceti în blacklist algif_*, bluetooth, dccp, tipc, sctp, cifs dacă nu le utilizați. Majoritatea workload-urilor nu au nevoie de ele.
  • Seccomp default-deny pe fiecare workload. Faceți profilurile Localhost norma. RuntimeDefault este pragul minim, nu plafonul.
  • Reîmprospătarea nodurilor bazată pe imagine (Talos Linux, Bottlerocket, Flatcar). Reboot-uri atomice, kernel imuabil, rollback fără dureri.
  • Monitorizare runtime. Falco sau Tetragon prind apeluri de sistem neașteptate în timp real. Combinați-le cu observabilitatea runtime pentru workload-uri AI unde suprafața apelurilor de sistem este mai largă.
  • Alertare pentru evenimente scurte de încărcare module kernel în SIEM-ul dvs. Dacă algif_aead se încarcă vreodată pe o gazdă de producție care nu are nevoie de el, trebuie să știți în câteva secunde.
  • Fixați versiunile K8s și imaginile de nod la o linie de bază pe care o monitorizați activ din punct de vedere al securității. Tag-urile flotante sunt un incident viitor care așteaptă să se întâmple.

Aceasta este lecția pe care Copy Fail ne-o oferă înainte ca următorul să apară. Echipele care vor gestiona următorul zero-day în 30 de minute în loc de 60 sunt cele care au implementat deja aceste șase controale.

Întrebări frecvente

Sunt afectat de Copy Fail (CVE-2026-31431)?

Cel mai probabil da, dacă rulați orice distribuție Linux majoră pe un kernel lansat înainte de 1 mai 2026 și permiteți acces shell neprivilegiat. Aceasta include fiecare server multi-chiriat, fiecare worker Kubernetes și fiecare runner CI. Rulați uname -r și verificați față de tabelul versiunilor patch-uite de mai sus. CVSS este 7.8.

Clusterul meu Kubernetes este vulnerabil chiar și cu PSS Restricted?

Da. Standardele de Securitate a Pod-urilor Restricted cu seccompProfile.type: RuntimeDefault nu blochează socket(AF_ALG, ...). Juliet.sh a testat acest lucru direct: un pod care rulează cu PSS Restricted plus RuntimeDefault a preluat controlul kernel-ului gazdei via Copy Fail. Aveți nevoie de un profil seccomp Localhost (furnizat în secțiunea de mitigare K8s de mai sus).

Docker Desktop blochează Copy Fail?

Profilul seccomp default al Docker Desktop interzice deja multe apeluri de sistem, dar nu a blocat AF_ALG până când moby/moby PR #52501 a fost integrat. Actualizați Docker la o versiune care include profilul patch-uit (backport Docker 29.x) sau aplicați manual profilul seccomp. Instalările Linux Docker fără acest update rămân expuse.

Seccomp RuntimeDefault oprește acest atac?

Nu. RuntimeDefault este profilul nemodificat al runtime-ului containerului (default Docker/containerd). Permite socket(AF_ALG, ...) deoarece workload-urile legitime utilizează ocazional API-ul crypto al kernel-ului. Soluția este un profil Localhost care interzice explicit AF_ALG (JSON complet în secțiunea K8s) sau upgrade-ul la default-ul din moby/moby PR #52501.

Ce fac dacă nu pot reporni kernel-ul chiar acum?

Blacklist-ul modprobe plus un profil seccomp Localhost care interzice socket(AF_ALG, ...) este suficient până când puteți aplica patch-ul. Ambele se aplică fără reboot. Adăugați blacklist algif_aead în /etc/modprobe.d/copy-fail.conf, rulați rmmod algif_aead, implementați profilul seccomp și reporniți la următoarea fereastră de mentenanță.

Copy Fail este exploatat în mediul real?

Până pe 5 mai 2026, postarea de intelligence a amenințărilor Microsoft nu confirmă exploatarea în mediul real, dar caracterizează bug-ul ca „trivial de weaponizat” dat fiind exploit-ul de 732 de octeți publicat de Xint. Clasa primitivă de exploit (scriere cache pagini via splice) se suprapune cu Dirty Pipe (CVE-2022-0847), care a fost exploatat pe scară largă în câteva săptămâni de la dezvăluire.

Copy Fail afectează în mod specific workload-urile AI/ML?

Da, disproporționat. Inferența self-hosted (vLLM, sglang, Ollama), runtimerele de agenți, serverele MCP și build-urile CI pentru imagini ML execută în mod rutină cod utilizator nesigur. Orice dintre acestea într-un container, chiar și cu PSS Restricted, poate declanșa Copy Fail și prelua controlul gazdei. Nodurile GPU sunt profilul cu cel mai mare risc deoarece sunt de obicei multi-chiriate.

Cum diferă Copy Fail de Dirty Pipe?

Ambele sunt vulnerabilități LPE în kernel-ul Linux care produc scrieri arbitrare în cache-ul paginilor, dar suprafața de declanșare diferă: Dirty Pipe abuză de splice() într-un pipe, Copy Fail abuză de splice() într-un socket algif_aead (AF_ALG). Ambele ocolesc implicitele standard seccomp ale containerelor. Noutatea Copy Fail: ruta AF_ALG este accesibilă din Standardele de Securitate a Pod-urilor Restricted cu RuntimeDefault.

Concluzie

Copy Fail poate fi remediat în aproximativ 60 de minute dacă urmați ghidul cap-coadă: blacklist modprobe, update kernel, profil seccomp, verificare. Aspectul Kubernetes și infrastructură AI este ceea ce face acest CVE diferit de o LPE rutinieră: PSS Restricted cu RuntimeDefault nu vă va salva, iar un singur pod de inferență compromis poate prelua controlul gazdei. Blacklist-ul modprobe plus un profil seccomp Localhost este apărarea durabilă chiar și după aplicarea patch-ului.

Doriți o a doua pereche de ochi asupra runbook-ului dvs. de răspuns la incidente sau o linie de bază K8s hardenată înainte ca următorul CVE kernel să apară? Luați legătura cu Techsy. Noi realizăm hardening de platformă pentru stive AI/ML de producție.

Ultima actualizare 2026-05-05. Vom revizui articolul pentru noi avize ale distribuțiilor pe 2026-05-12.

Etichete

copy failCVE-2026-31431linux kernelAF_ALGalgif_aeadsecuritate kubernetesseccompescaladare privilegiirăspuns la incidentesecuritate infrastructură ai

Distribuie acest articol

Articole similare

Mai multe din cybersecurity

cybersecurity
Jul 23, 2026

Lista de verificare a securității SaaS înainte de lansare: 40 de verificări pe care le facem primele (2026)

Majoritatea listelor de verificare pentru lansare îți spun ce trebuie securizat, dar nu îți arată niciodată cum. Aceasta include codul: 40 de verificări pre-lansare pentru secrete, autentificare, izolarea chiriașilor, dependențe, anteturi și monitorizare, plus greșeala pe care o prindem în aproape fiecare revizuire.

12 min read min citire
Citește
cybersecurity
May 20, 2026

GitHub a fost hackuit printr-o extensie VS Code (mai 2026): Planul de urgență de 60 de minute pe care fiecare dezvoltator ar trebui să îl ruleze diseară

GitHub a confirmat că 3.800 de repositorii interne au fost exfiltrate printr-o extensie malicioasă VS Code pe 20 mai 2026. Iată planul de acțiune de 60 de minute pe care fiecare dezvoltator ar trebui să îl parcurgă înainte de culcare – plus concepția greșită din titlurile știrilor.

14 min read min citire
Citește
cybersecurity
May 8, 2026

Cum previne IA încălcările de date: 7 apărări care au oprit atacuri reale (2026)

Pe 30 aprilie 2026, aproximativ 275 de milioane de elevi au aflat că LMS-ul lor fusese compromis. Ar fi putut IA să o prevină? Iată 7 apărări care deja o fac și cum să le integrezi în aplicația ta săptămâna aceasta.

13 min read min citire
Citește
Vezi toate articolele
Începe Proiectul Tău

Gata să construim ceva extraordinară?

Hai să-ți transformăm viziunea în realitate. Echipa noastră e pregătită să te ajute să creezi software care face diferența.

Programează un apel de 30 minVezi proiectele noastre

Cele mai populare din bibliotecă

Skill-uri Claude

Vezi toate
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automatizări AI

Vezi toate
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Cele mai populare din bibliotecă

Skill-uri Claude

Vezi toate
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automatizări AI

Vezi toate
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Servicii

  • Soluții Enterprise
  • Aplicații Mobile
  • Aplicații Web

Soluții

  • Sisteme CRM
  • Integrare AI
  • Soluții ERP
  • Agenți Vocali
  • Automatizarea Proceselor
  • Cibersécurité

Bibliotecă

  • Blog
  • Portofoliu

Comunitate

  • Automatizări AI
  • Skill-uri Claude

Tool-uri

  • Calculator cost aplicație mobilă
  • Calculator cost API OpenAI / LLM
  • Calculator cost MVP
  • Calculator cost agent AI vocal

Companie

  • Despre
  • Parteneri
  • Contact

Mențiuni legale

  • Politica de confidențialitate
  • Termeni și condiții
  • Politica cookie

Servicii

  • Soluții Enterprise
  • Aplicații Mobile
  • Aplicații Web

Soluții

  • Sisteme CRM
  • Integrare AI
  • Soluții ERP
  • Agenți Vocali
  • Automatizarea Proceselor
  • Cibersécurité

Bibliotecă

  • Blog
  • Portofoliu

Comunitate

  • Automatizări AI
  • Skill-uri Claude

Tool-uri

  • Calculator cost aplicație mobilă
  • Calculator cost API OpenAI / LLM
  • Calculator cost MVP
  • Calculator cost agent AI vocal

Companie

  • Despre
  • Parteneri
  • Contact
Mențiuni legalePolitica de confidențialitateTermeni și condițiiPolitica cookie
TECHSY
© 2026 Techsy. Toate drepturile rezervate.