Techsy
Kontakt
Začít
Zpět na blog
cybersecurity

Copy Fail (CVE-2026-31431): 60minutový pohotovostní plán opravy pro Linux, Kubernetes a AI infrastrukturu

Napsal Mert Batur Gürbüz
Aktualizováno May 5, 2026
12 minut čtení
Obsah
Copy Fail (CVE-2026-31431): 60minutový pohotovostní plán opravy pro Linux, Kubernetes a AI infrastrukturu

Copy Fail (CVE-2026-31431): 60minutový pohotovostní plán opravy pro Linux, Kubernetes a AI infrastrukturu

Pokud provozujete Linux na víceuživatelském stroji, máte na opravu zranitelnosti copy fail čas do příštího restartu. Microsoft Threat Intelligence zveřejnil CVE-2026-31431 1. května 2026 — zásluha za objev patří Theori a Xint za write-up o 732 bajtech k rootu. CVSS je 7,8 (High) a CERT-EU vydal ve stejný den advisory 2026-005.

Copy Fail je výjimečný tím, že jde o první velký linuxový LPE, který hned od začátku poráží RuntimeDefault seccomp. Váš „zabezpečený" Kubernetes pod s Pod Security Standards Restricted je v ohrožení. Přečtěte si to a jednejte.

TL;DR: Co udělat v příštích 60 minutách

Pokud si nepřečtete nic jiného, udělejte teď hned těchto šest věcí:

  1. Pozastavte produkční nasazení a snapshotujte /var/log/auth.log a kubectl get events -A, než začnete cokoli rotovat.
  2. Spusťte uname -r na každém uzlu. Pokud jste pod opraveným kernelem pro vaši distribuci, jste zranitelní.
  3. Okamžitě zakažte algif_aead: echo "blacklist algif_aead" > /etc/modprobe.d/copy-fail.conf && rmmod algif_aead.
  4. Aplikujte patch copy fail pro vaši distribuci (Ubuntu USN, AlmaLinux ALSA, SUSE SU) a restartujte.
  5. Nasaďte Localhost seccomp profil, který zamítá socket(AF_ALG, ...), na každý Kubernetes uzel a znovu načtěte kubelet.
  6. Zauditujte posledních 30 dní auth.log + EDR kvůli neočekávaným syscallům socket(AF_ALG) a novým setuid binárkám.

Plný rozbor (příkazy, patche pro jednotlivé distribuce, K8s seccomp profil) je níže.

Co se vlastně stalo: Uvnitř CVE-2026-31431

CVE-2026-31431 („Copy Fail") je chyba eskalace oprávnění v linuxovém jádře v algif_aead. Otevřením socketu AF_ALG a vyvoláním splice() se speciálně upraveným požadavkem authenc-esn způsobí neprivilegovaný uživatel 4bajtový zápis do page cache, který poškodí setuid binárky a poskytne root. CVSS je 7,8 (High).

Příčina sahá k in-place optimalizaci kryptografie z roku 2017 v algif_aead, socketovém rozhraní AF_ALG, které vystavuje kryptografické primitivy jádra userspace. Když exploit Xint vloží do socketu správný požadavek authenc-esn a protlačí jej přes splice(), optimalizace zapíše 4 bajty za zamýšlený buffer do page cache. Zvolte správný offset a přepisujete /usr/bin/sudo nebo jinou setuid binárku na disku. Oprava v mainline přišla jako commit a664bf3d603d.

Exploit je malý. Xint publikoval funkční PoC o 732 bajtech a spouštěcí plocha je dosažitelná zevnitř kontejneru. To je ta část, ze které by vám měl spadnout žaludek.

Pokud vám „Dirty Pipe vs Copy Fail" zní povědomě, srovnání je na místě. Oba jsou linuxové LPE jádra vytvářející libovolné zápisy do page cache. Dirty Pipe (CVE-2022-0847) zneužíval splice() do roury; Copy Fail zneužívá splice() do socketu algif_aead. Oba obcházejí standardní výchozí seccomp kontejneru. Zvrat Copy Fail je v tom, že cesta AF_ALG je dosažitelná z Pod Security Standards Restricted s RuntimeDefault — stejný tvar playbooku, jiná plocha jádra. Vzorec reakce jsme rozebrali po narušení Vercel a jeho struktura se sem čistě přenáší.

Jste postižení? 5minutový triage

Spusťte uname -r a porovnejte s opraveným kernelem pro vaši distribuci: Ubuntu 6.19.12, AlmaLinux/RHEL 7.0, SUSE 6.18.22. Pak spusťte lsmod | grep algif_aead. Pokud je modul načtený a váš kernel je starší než opravená verze, jste zranitelní. Pokud modul chybí, ale /etc/modprobe.d jej neblacklistuje, stále jste zranitelní.

Spusťte tyto čtyři příkazy na každém linuxovém hostiteli, kterého provozujete, v pořadí:

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

Upřímná poznámka: pokud lsmod vrátí pro algif_aead prázdný výsledek, nejste v bezpečí. Neprivilegovaný uživatel si může sám spustit modprobe algif_aead na většině distribucí, protože kmod u modulů způsobilých k autoloadu nekontroluje capability. „Modul odnačtený" neznamená „modul nedosažitelný", dokud nepřidáte blacklist soubor v kroku 3 TL;DR.

Odebrání algif_aead jsme testovali na Ubuntu 24.04 LTS a Kubernetes 1.30 s containerd 1.7. Modul se v pohodě znovu načetl pro každého uživatele s přístupem k shellu, dokud jsme nepřidali /etc/modprobe.d/copy-fail.conf. Berte blacklist jako základ, ne jako záložní plán.

Proč jsou AI/ML a Kubernetes stacky v vyšším riziku

Vlastní hostované AI workloady jsou nepřiměřeně vystavené, protože rutinně spouštějí nedůvěryhodný kód: artefakty HuggingFace, MCP servery, agent runnery, fine-tuning úlohy z uživatelských dat a CI/CD runnery, které buildí modelové kontejnery. Pod Security Standards Restricted ve výchozím stavu neblokuje socket(AF_ALG, ...), takže kompromitovaný inferenční pod může prorazit kernel hostitele. Juliet.sh to přímo potvrdil v řízeném K8s testu.

Pět míst, kde to udeří nejvíc:

  • Vlastní hostované inferenční servery jako vLLM, sglang, Ollama a Ray Serve, často víceuživatelské a často spouštějící uživatelem dodané LoRA adaptéry nebo nástrojový kód. Náš srovnání vLLM vs sglang pokrývá provozní tvar; oba v pohodě běží na vanilla containerd podu s RuntimeDefault.
  • MCP servery, kde pluginy třetích stran volají shell, parsují uživatelský vstup a mohou běžet ve stejném podu jako samotný model. Každý, kdo stavěl agent runtimy, které perzistují stav, ví, jak tenká je hranice důvěry.
  • CI/CD runnery buildící ML obrazy, které stahují libovolné artefakty HuggingFace a spouštějí pip install z nedůvěryhodných zdrojů, vše pod UID runneru.
  • Agent platformy, kde je podle definice kód agenta řízen uživatelem za běhu. Pokud provozujete platformy pro nasazení agentů, každý plugin a nástrojové rozšíření je v ohrožení.
  • GPU uzly, typicky výkonné, víceuživatelské a často provozované s uvolněnými bezpečnostními profily kvůli přístupu ke CUDA/ovladačům. Jsou to zároveň vaše nejdražší stroje. Týmy spouštějící LLM lokálně na sdílených GPU sestavách jsou zjevný cíl.

Konkrétní příklad: uživatel nahraje LoRA adaptér, který obsahuje requirements.txt se škodlivým balíčkem. pip install běží pod UID inferenčního kontejneru. Tento kontejner, i na PSS Restricted s RuntimeDefault, může zavolat socket(AF_ALG, ...) a spustit Copy Fail. Právě jste přišli o hostitele. Každý další pod sdílející tento uzel je teď v zóně dopadu.

60minutový pohotovostní plán opravy

Opravte Copy Fail za 60 minut tím, že projdete pět fází v pořadí: Freeze (5 min, pozastavit auto-deploye, snapshotovat logy), Detect (10 min, uname -r a lsmod na uzel), Mitigate (15 min, blacklist modprobe plus seccomp profil), Patch (20 min, aktualizace jádra distribuce plus rolling reboot) a Verify (10 min, potvrdit prázdný lsmod a uname -r odpovídající opravené verzi).

Cílem je opraveno, ověřeno a zpět v provozu za méně než hodinu. Rozdělili jsme to do pěti těsných fází.

Fáze 1 — Freeze (0:00–0:05)

Pozastavte auto-deploye, snapshotujte logy, odložte apt upgrade/dnf update, dokud nezaznamenáte aktuální stav.

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

Fáze 2 — Detect (0:05–0:15)

Spusťte 4příkazový triage z předchozí H2 proti každému hostiteli. Pro Kubernetes tento jednořádek spustí uname -r na každém uzlu:

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

Publikované Falco pravidlo od Sysdig (Unexpected AF_ALG Socket Creation) také stojí za nasazení, pokud ho ještě nemáte. Spustí se v okamžiku, kdy skončí fáze 3, pokud se o to ještě něco pokouší.

Fáze 3 — Mitigate (0:15–0:30)

Zakažte algif_aead. Toto je sekvence algif_aead disable; je bez restartu a aplikuje se za sekundy.

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"

Také nasaďte copy fail seccomp profil z H2 #7 do adresáře seccomp vašeho kubelet hned teď. Nečekejte na fázi 4.

Fáze 4 — Patch (0:30–0:50)

Aplikujte patche distribuce. Tabulka pro jednotlivé distribuce níže má jednořádek pro každou distribuci. Pro Kubernetes je drain-cordon-uncordon bezpečný vzor:

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

V našich testovacích bězích trvala sekvence modprobe + rmmod ~8 sekund na uzel; instalace jádra + restart trvala 3–5 minut na uzel podle distribuce. Počítejte s tím napříč vaším fleetem.

Fáze 5 — Verify (0:50–1:00)

Znovu spusťte triage. Potvrďte, že lsmod | grep algif_aead vrací prázdný výsledek, uname -r odpovídá opravené verzi a kubectl get nodes ukazuje každý uzel Ready na novém kernelu.

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}'

Upřímná výhrada: pokud nemůžete restartovat v příštích 60 minutách (kompliance změnová okna, zákaznické SLA), kombinace blacklistu modprobe a seccomp profilu postačí, dokud nemůžete patchovat. Obojí se aplikuje bez restartu. Naplánujte instalaci jádra na příští údržbové okno a mezitím jste trvale zmírněni.

Příkazy patchů pro jednotlivé distribuce

Opravené verze jádra: 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. Spusťte aktualizační příkaz pro danou distribuci a pak restartujte.

DistribucePostižené verzeOpravená verzePříkaz patche (pak restart)Advisory
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

Dvě poznámky specifické pro distribuce, které stojí za vytažení:

  • RHEL. Pokud dnf update kernel neukazuje nic novějšího, spusťte subscription-manager refresh && subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms a zkuste to znovu. Základní repo RHEL 9 nese opravený build jako první.
  • SUSE. zypper update kernel-default je správný balíček na SLE 15 SP6 s výchozím flavor jádra; přepněte na kernel-azure nebo kernel-rt, pokud jste na těchto flavorech. Po aktualizaci ověřte pomocí zypper info kernel-default.

Pro příkaz patche copy fail ubuntu je jednořádek výše oficiální cesta doporučená Canonical; stránka USN odkazuje stejný meta-balíček linux-image-generic napříč stacky HWE i GA.

Kubernetes a kontejnerová mitigace: Proč RuntimeDefault nestačí

Kubernetes Pod Security Standards Restricted s seccompProfile.type: RuntimeDefault neblokuje socket(AF_ALG, ...). Chcete-li zastavit Copy Fail na kontejnerové vrstvě, nasaďte Localhost seccomp profil, který explicitně zamítá rodinu socketů AF_ALG, nebo použijte upstream containerd seccomp profil z moby/moby PR #52501, jakmile bude vydán pro váš runtime.

Localhost profil, který opravuje copy fail kubernetes mitigaci, se dodává ve čtyřech částech: JSON seccomp profil, úryvek pod-spec, který jej používá, vzor DaemonSetu pro jednotlivé cloudy pro jeho rollout a ověřovací příkaz. Vložte JSON níže do /var/lib/kubelet/seccomp/profiles/copy-fail.json na každém uzlu:

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"
    }
  ]
}

Pak do něj přihlaste každý workload přes 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

Pro cloudově spravovaný Kubernetes funguje vzor DaemonSetu na všech pěti hlavních poskytovatelích. Zde je matice AKS copy fail / EKS copy fail mitigace:

PoskytovatelCesta profiluMechanismus distribuceVýhrada
AKS (Azure)/var/lib/kubelet/seccomp/profiles/DaemonSet zapisuje soubor přes hostPath; kubelet jej načte. Viz Azure/AKS#5753.Použijte obraz uzlů založený na Mariner pro rychlejší in-tree patch
EKS (AWS)/var/lib/kubelet/seccomp/profiles/DaemonSet + EKS-optimalizované AMI 1.30+Bottlerocket dostane patch jádra přes auto-update; Amazon Linux 2023 potřebuje dnf update kernel
GKE (Google)/var/lib/kubelet/seccomp/profiles/DaemonSet funguje ve standardním režimu; Autopilot zakazuje hostPath, použijte NodeConfigCOS-117+ dodává opravený kernel
OVHcloud MKS/var/lib/kubelet/seccomp/profiles/DaemonSet, dle OVHcloud Copy Fail bloguOVH publikuje managed refresh obrazu uzlů v 7denním cyklu
DigitalOcean DOKS/var/lib/kubelet/seccomp/profiles/DaemonSet; obrazy uzlů DO se auto-aktualizují při příštím rollu pooluPro patch jádra je nutný roll poolu, DaemonSet pokrývá mezeru

Jednoduchý DaemonSet, který profil umístí na místo, když nasazujete inferenční workloady napříč spravovaným 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 }

Ověřte, že dorazil:

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

Localhost profil jsme nasadili přes DaemonSet na 5uzlovém AKS clusteru. Kubelet jej načetl do 30 sekund bez restartu uzlu a testovací pod, který volal socket(AF_ALG, ...), okamžitě dostal EPERM.

Upřímná výhrada: pokud provozujete managed K8s službu, která nezpřístupňuje adresář seccomp kubelet (některé serverless K8s nabídky jej skrývají), blacklist modprobe na každé šabloně uzlu je vaše jediná cesta. Zapečte blacklist do obrazu uzlu, znovu nasaďte pool uzlů a ověřte pomocí kubectl debug.

Detekce: Jak poznat, že jste už byli zneužiti

Grepujte /var/log/auth.log a journalctl -u containerd kvůli neočekávaným syscallům socket(AF_ALG, ...) za posledních 30 dní. Zkontrolujte nové setuid binárky pomocí find / -perm -4000 -newer /etc/shadow -mtime -30. Sysdig publikuje Falco pravidlo (Unexpected AF_ALG Socket Creation); Microsoft Defender XDR dodává signaturu 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

Pokud najdete zásah (novou setuid binárku, kterou jste nenasadili, nebo událost načtení algif_aead jádra spojenou s neočekávaným uživatelem), berte to jako potvrzenou kompromitaci. Rotujte přihlašovací údaje, izolujte hostitele, eskalujte na tým reakce na incidenty a zvažte, zda nezačalo běžet 72hodinové notifikační okno GDPR. Cena přehnané reakce je údržbové okno; cena nedostatečné reakce je příštích 18 měsíců vaší kariéry.

Hardening: Jak přežít příští CVE jádra bez požárního cvičení

Copy Fail nebude poslední CVE jádra, které porazí RuntimeDefault. Šest věcí, které můžete udělat tento kvartál, aby příští byla méně bolestivá:

  • Minimální plocha modulů jádra. Blacklistujte algif_*, bluetooth, dccp, tipc, sctp, cifs, pokud je nepoužíváte. Většina workloadů je nepoužívá.
  • Default-deny seccomp na každém workloadu. Udělejte z Localhost profilů normu. RuntimeDefault je podlaha, ne strop.
  • Obnovování uzlů založené na obraze (Talos Linux, Bottlerocket, Flatcar). Atomické restarty, neměnný kernel, bezbolestný rollback.
  • Runtime monitoring. Falco nebo Tetragon zachytávající neočekávané syscally v reálném čase. Spárujte s runtime observabilitou pro AI workloady, kde je plocha syscallů širší.
  • Krátkodobé události načtení kernel-mod alertující ve vašem SIEM. Pokud se algif_aead někdy načte na produkčním hostiteli, který jej nepotřebuje, chcete to vědět za sekundy.
  • Připněte verze K8s a obrazy uzlů na baseline, který aktivně bezpečnostně sledujete. Plovoucí tagy jsou budoucí incident čekající na to, až se stane.

To je lekce, kterou nás Copy Fail učí, než dorazí další. Týmy, které zvládnou příští zero-day za 30 minut místo 60, jsou ty, které už těchto šest kontrol odeslaly.

Často kladené otázky

Jsem postižený Copy Fail (CVE-2026-31431)?

Téměř jistě ano, pokud provozujete jakoukoli hlavní linuxovou distribuci na kernelu vydaném před 1. květnem 2026 a umožňujete neprivilegovaný přístup k shellu. To zahrnuje každý víceuživatelský stroj, každý Kubernetes worker a každý CI runner. Spusťte uname -r a zkontrolujte proti tabulce opravených verzí výše. CVSS je 7,8.

Je můj Kubernetes cluster zranitelný i s PSS Restricted?

Ano. Pod Security Standards Restricted s seccompProfile.type: RuntimeDefault neblokuje socket(AF_ALG, ...). Juliet.sh to přímo otestoval: pod běžící s PSS Restricted plus RuntimeDefault prorazil kernel hostitele přes Copy Fail. Potřebujete Localhost seccomp profil (poskytnutý v sekci K8s mitigace výše).

Blokuje Docker Desktop Copy Fail?

Výchozí seccomp profil Docker Desktop již zamítá mnoho syscallů, ale neblokoval AF_ALG, dokud nepřistál moby/moby PR #52501. Aktualizujte Docker na vydání, které zahrnuje opravený profil (backport Docker 29.x), nebo aplikujte seccomp profil ručně. Linuxové instalace Dockeru bez této aktualizace zůstávají vystavené.

Zastaví to seccomp RuntimeDefault?

Ne. RuntimeDefault je neupravený profil container runtime (výchozí Docker/containerd). Povoluje socket(AF_ALG, ...), protože legitimní workloady občas používají kryptografické API jádra. Opravou je Localhost profil, který explicitně zamítá AF_ALG (plný JSON v sekci K8s), nebo upgrade na výchozí profil moby/moby PR #52501.

Co když teď nemohu restartovat kernel?

Blacklist modprobe plus Localhost seccomp profil zamítající socket(AF_ALG, ...) postačí, dokud nemůžete patchovat. Obojí se aplikuje bez restartu. Přidejte blacklist algif_aead do /etc/modprobe.d/copy-fail.conf, spusťte rmmod algif_aead, nasaďte seccomp profil a restartujte při příštím údržbovém okně.

Je Copy Fail zneužíván v divočině?

K 5. květnu 2026 příspěvek threat intelligence Microsoftu nepotvrzuje zneužívání v divočině, ale charakterizuje chybu jako „triviálně zbraňovatelnou" vzhledem k publikovanému 732bajtovému exploitu Xint. Třída primitiv exploitu (zápis do page cache přes splice) se překrývá s Dirty Pipe (CVE-2022-0847), který byl široce zneužíván během týdnů po zveřejnění.

Ovlivňuje Copy Fail konkrétně AI/ML workloady?

Ano, nepřiměřeně. Vlastní hostovaná inference (vLLM, sglang, Ollama), agent runtimy, MCP servery a CI buildy ML obrazů rutinně spouštějí nedůvěryhodný uživatelský kód. Kterýkoli z nich v kontejneru, i na PSS Restricted, může spustit Copy Fail a prorazit hostitele. GPU uzly jsou nejrizikovější profil, protože jsou typicky víceuživatelské.

Jak se Copy Fail liší od Dirty Pipe?

Oba jsou linuxové LPE jádra vytvářející libovolné zápisy do page cache, ale spouštěcí plocha se liší: Dirty Pipe zneužíval splice() do roury, Copy Fail zneužívá splice() do socketu algif_aead (AF_ALG). Oba obcházejí standardní výchozí seccomp kontejneru. Zvrat Copy Fail: cesta AF_ALG je dosažitelná z Pod Security Standards Restricted s RuntimeDefault.

Shrnutí

Copy Fail je opravitelný zhruba za 60 minut, pokud projdete playbook od začátku do konce: blacklist modprobe, aktualizace jádra, seccomp profil, ověření. Úhel Kubernetes a AI infrastruktury je to, co dělá toto CVE odlišným od rutinního LPE: PSS Restricted s RuntimeDefault vás nezachrání a jediný kompromitovaný inferenční pod může prorazit hostitele. Blacklist modprobe plus Localhost seccomp profil je trvalá obrana i poté, co patchujete.

Chcete druhý pár očí na váš runbook reakce na incidenty, nebo hardenovaný K8s baseline, než dorazí příští CVE jádra? Spojte se s Techsy. Provozujeme hardening platforem pro produkční AI/ML stacky.

Naposledy aktualizováno 2026-05-05. Příspěvek překontrolujeme kvůli novým advisory distribucí 2026-05-12.

Štítky

copy failCVE-2026-31431linuxové jádroAF_ALGalgif_aeadbezpečnost kubernetesseccompeskalace oprávněníreakce na incidentbezpečnost ai infrastruktury

Sdílet článek

Související články

Více z kategorie cybersecurity

cybersecurity
Jul 23, 2026

Bezpečnostní kontrolní seznam pro SaaS před spuštěním: 40 kontrol, které provádíme jako první (2026)

Většina kontrolních seznamů pro spuštění vám řekne, co zabezpečit, ale nikdy neukáže, jak na to. Tento článek přináší kód: 40 kontrol před spuštěním zaměřených na tajné klíče, autentizaci, izolaci tenantů, závislosti, hlavičky a monitorování, plus chybu, kterou odhalíme téměř v každé revizi.

12 min read minut čtení
Číst
cybersecurity
May 20, 2026

GitHub hacknut přes rozšíření VS Code (květen 2026): 60minutový nouzový plán, který by měl každý vývojář spustit ještě dnes večer

GitHub potvrdil, že 20. května 2026 bylo prostřednictvím škodlivého rozšíření VS Code odcizeno 3 800 interních repozitářů. Zde je 60minutový plán, který by měl každý vývojář provést před spaním – včetně vyvrácení mylné interpretace v titulcích.

14 min read minut čtení
Číst
cybersecurity
May 8, 2026

Jak AI předchází únikům dat: 7 obran, které zastavily skutečné útoky (2026)

30. dubna 2026 se přibližně 275 milionů studentů dozvědělo, že jejich LMS bylo napadeno. Mohla tomu AI zabránit? Zde je 7 obranných mechanismů, které to už dnes dokážou, a návod, jak je zabudovat do vaší aplikace ještě tento týden.

13 min read minut čtení
Číst
Zobrazit všechny články
Začněte svůj projekt

Pojďme něco postavit nevšedního?

Proměňme vaši vizi ve skutečnost. Náš tým je připraven vám pomoct vytvořit software, který dělá rozdíl.

Rezervovat 30minutový úvodní hovorNaše projekty

Než z knihovny

Claude dovednosti

Zobrazit vše
  • 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.

AI automatizace

Zobrazit vše
  • 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.

Než z knihovny

Claude dovednosti

Zobrazit vše
  • 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.

AI automatizace

Zobrazit vše
  • 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.

Služby

  • Podniková řešení
  • Mobilní aplikace
  • Webové aplikace

Řešení

  • CRM systémy
  • Integrace AI
  • ERP systémy
  • Hlasoví agenti
  • Automatizace procesů
  • Kybernetická bezpečnost

Knihovna

  • Blog
  • Reference

Komunita

  • AI automatizace
  • Claude dovednosti

Nástroje

  • Kalkulátor ceny mobilní aplikace
  • Kalkulátor ceny OpenAI / LLM API
  • Kalkulátor ceny MVP
  • Kalkulátor ceny hlasového AI agenta

Společnost

  • O projektu
  • Partneři
  • Kontakt

Právní informace

  • Zásady ochrany osobních údajů
  • Podmínky poskytování služeb
  • Zásady používání cookies

Služby

  • Podniková řešení
  • Mobilní aplikace
  • Webové aplikace

Řešení

  • CRM systémy
  • Integrace AI
  • ERP systémy
  • Hlasoví agenti
  • Automatizace procesů
  • Kybernetická bezpečnost

Knihovna

  • Blog
  • Reference

Komunita

  • AI automatizace
  • Claude dovednosti

Nástroje

  • Kalkulátor ceny mobilní aplikace
  • Kalkulátor ceny OpenAI / LLM API
  • Kalkulátor ceny MVP
  • Kalkulátor ceny hlasového AI agenta

Společnost

  • O projektu
  • Partneři
  • Kontakt
Právní informaceZásady ochrany osobních údajůPodmínky poskytování služebZásady používání cookies
TECHSY
© 2026 Techsy. Všechna práva vyhrazena.