
Kegagalan Copy (CVE-2026-31431): Panduan Darurat Patch 60 Menit untuk Linux, Kubernetes, dan Infrastruktur AI
Jika Anda menjalankan Linux pada mesin multi-penyewa, Anda memiliki waktu hingga reboot berikutnya untuk memperbaiki kerentanan copy fail. Microsoft Threat Intelligence mengungkapkan CVE-2026-31431 pada 1 Mei 2026 — kredit diberikan kepada Theori atas penemuannya dan Xint untuk tulisan teknis 732-byte-to-root. Skor CVSS berada di angka 7.8 (Tinggi), dan CERT-EU menerbitkan advisori 2026-005 pada hari yang sama.
Inilah yang membuat Copy Fail berbeda: ini adalah LPE (Local Privilege Escalation) Linux besar pertama yang mengalahkan seccomp RuntimeDefault secara default. Pod Kubernetes "aman" Anda, dengan Standar Keamanan Pod (Pod Security Standards) Restricted, termasuk dalam cakupan risiko. Baca ini dan bertindaklah.
TL;DR: Apa yang Harus Dilakukan dalam 60 Menit Ke Depan
Jika Anda tidak membaca hal lain, lakukan enam hal ini sekarang juga:
- Hentikan sementara deployment produksi dan ambil snapshot
/var/log/auth.logsertakubectl get events -Asebelum Anda mulai merotasi apa pun. - Jalankan
uname -rpada setiap node. Jika Anda menggunakan kernel yang lebih lama dari versi yang sudah ditambal untuk distro Anda, Anda rentan. - Nonaktifkan
algif_aeadsegera:echo "blacklist algif_aead" > /etc/modprobe.d/copy-fail.conf && rmmod algif_aead. - Terapkan patch copy fail untuk distro Anda (Ubuntu USN, AlmaLinux ALSA, SUSE SU) dan reboot.
- Terapkan profil seccomp Localhost yang menolak
socket(AF_ALG, ...)pada setiap node Kubernetes dan muat ulang kubelet. - Audit 30 hari terakhir auth.log + EDR untuk syscall
socket(AF_ALG)yang tidak terduga dan biner setuid baru apa pun.
Penjelasan lengkap (perintah, patch khusus distro, profil seccomp K8s) ada di bawah ini.
Apa yang Sebenarnya Terjadi: Di Dalam CVE-2026-31431
CVE-2026-31431 ("Copy Fail") adalah cacat eskalasi hak akses kernel Linux di algif_aead. Dengan membuka soket AF_ALG dan memicu splice() dengan permintaan authenc-esn yang dirancang khusus, pengguna tanpa hak istimewa menyebabkan penulisan page-cache 4 byte yang merusak biner setuid dan menghasilkan akses root. Skor CVSS adalah 7.8 (Tinggi).
Akar penyebabnya dapat dilacak kembali ke optimasi crypto in-place tahun 2017 di algif_aead, antarmuka soket AF_ALG yang mengekspos primitif crypto kernel ke userspace. Ketika eksploit Xint memasukkan permintaan authenc-esn yang tepat ke dalam soket dan mengalirkannya melalui splice(), optimasi tersebut menulis 4 byte melewati buffer yang dimaksudkan ke dalam page cache. Pilih offset yang tepat, dan Anda sedang menulis ulang /usr/bin/sudo atau biner setuid lainnya di disk. Perbaikan mainline masuk sebagai commit a664bf3d603d.
Eksploitnya kecil. Xint mempublikasikan PoC yang berfungsi dalam 732 byte, dan permukaan pemicunya dapat diakses dari dalam kontainer. Itulah bagian yang seharusnya membuat Anda khawatir.
Jika "Dirty Pipe vs Copy Fail" terdengar familiar, perbandingannya wajar. Keduanya adalah LPE kernel Linux yang menghasilkan penulisan page-cache arbitrer. Dirty Pipe (CVE-2022-0847) menyalahgunakan splice() ke dalam pipe; Copy Fail menyalahgunakan splice() ke dalam soket algif_aead. Keduanya menghindari default seccomp kontainer standar. Keunikan Copy Fail adalah bahwa jalur AF_ALG dapat diakses dari Pod Security Standards Restricted dengan RuntimeDefault, bentuk playbook yang sama, permukaan kernel yang berbeda. Kami membahas pola respons setelah pelanggaran Vercel dan strukturnya dapat diterapkan dengan bersih di sini.
Apakah Anda Terkena Dampak? Triase 5 Menit
Jalankan uname -r dan bandingkan dengan kernel yang sudah ditambal untuk distro Anda: Ubuntu 6.19.12, AlmaLinux/RHEL 7.0, SUSE 6.18.22. Kemudian jalankan lsmod | grep algif_aead. Jika modul dimuat dan kernel Anda lebih lama dari versi yang ditambal, Anda rentan. Jika modul tidak ada tetapi /etc/modprobe.d tidak memasukkannya ke daftar hitam, Anda tetap rentan.
Jalankan empat perintah ini pada setiap host Linux yang Anda operasikan, secara berurutan:
# 1. Identify running kernel
uname -r# 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)='# 3. Is the module loaded?
lsmod | grep -E 'algif_(aead|skcipher)'# 4. (Kubernetes only) count nodes you need to triage
kubectl get nodes -o wideCatatan jujur: jika lsmod mengembalikan kosong untuk algif_aead, Anda belum aman. Pengguna tanpa hak istimewa dapat melakukan modprobe algif_aead sendiri pada sebagian besar distro, karena kmod tidak membatasi berdasarkan kapabilitas untuk modul yang memenuhi syarat autoload. "Modul tidak dimuat" bukanlah "modul tidak dapat dijangkau" sampai Anda menambahkan file daftar hitam di langkah 3 TL;DR.
Kami menguji penghapusan algif_aead pada Ubuntu 24.04 LTS dan Kubernetes 1.30 dengan containerd 1.7. Modul dimuat ulang dengan baik untuk pengguna mana pun dengan akses shell sampai kami menambahkan /etc/modprobe.d/copy-fail.conf. Anggap daftar hitam sebagai persyaratan dasar, bukan rencana cadangan.
Mengapa Tumpukan AI/ML dan Kubernetes Berisiko Lebih Tinggi
Workload AI yang di-host sendiri terpapar secara tidak proporsional karena mereka rutin mengeksekusi kode yang tidak tepercaya: artefak HuggingFace, server MCP, runner agen, job fine-tuning dari data pengguna, dan runner CI/CD yang membangun kontainer model. Pod Security Standards Restricted tidak memblokir socket(AF_ALG, ...) secara default, sehingga pod inferensi yang dikompromikan dapat mengambil alih kernel host. Juliet.sh mengonfirmasi hal ini secara langsung dalam tes K8s terkontrol.
Lima area di mana dampaknya paling parah:
- Server inferensi yang di-host sendiri seperti vLLM, sglang, Ollama, dan Ray Serve, sering kali multi-penyewa dan sering menjalankan adapter LoRA yang disediakan pengguna atau kode alat. Perbandingan vLLM vs sglang kami mencakup bentuk operasionalnya; keduanya berjalan dengan lancar pada pod containerd vanilla dengan
RuntimeDefault. - Server MCP, di mana plugin pihak ketiga melakukan shell out, mengurai input pengguna, dan mungkin berjalan di dalam pod yang sama dengan model itu sendiri. Siapa pun yang pernah membangun runtime agen yang mempertahankan status tahu betapa tipisnya batas kepercayaan tersebut.
- Runner CI/CD yang membangun image ML yang menarik artefak HuggingFace arbitrer dan menjalankan
pip installdari sumber yang tidak tepercaya, semuanya sebagai UID runner. - Platform agen di mana, menurut definisi, kode agen dikontrol pengguna saat runtime. Jika Anda mengoperasikan platform deployment agen, setiap plugin dan ekstensi alat termasuk dalam cakupan.
- Node GPU, biasanya berkinerja tinggi, multi-penyewa, dan sering dijalankan dengan profil keamanan yang longgar untuk akses CUDA/driver. Mereka juga merupakan mesin dengan biaya tertinggi yang Anda miliki. Tim yang menjalankan LLM secara lokal pada rig GPU bersama adalah target yang jelas.
Contoh konkret: seorang pengguna mengunggah adapter LoRA yang menyertakan requirements.txt dengan paket berbahaya. pip install berjalan sebagai UID kontainer inferensi. Kontainer tersebut, bahkan pada PSS Restricted dengan RuntimeDefault, dapat melakukan socket(AF_ALG, ...) dan memicu Copy Fail. Anda baru saja kehilangan host. Setiap pod lain yang berbagi node tersebut sekarang berada dalam radius ledakan.
Panduan Darurat Patch 60 Menit
Patch Copy Fail dalam 60 menit dengan bekerja melalui lima fase secara berurutan: Freeze (5 menit, jeda auto-deploy, snapshot log), Detect (10 menit, uname -r dan lsmod per node), Mitigate (15 menit, daftar hitam modprobe plus profil seccomp), Patch (20 menit, update kernel distro plus rolling reboot), dan Verify (10 menit, konfirmasi lsmod kosong dan uname -r cocok dengan versi yang ditambal).
Tujuannya adalah patched, diverifikasi, dan kembali beroperasi dalam waktu kurang dari satu jam. Kami telah membaginya menjadi lima fase ketat.
Fase 1 — Freeze (0:00–0:05)
Jeda auto-deploy, ambil snapshot log, tunda apt upgrade/dnf update sampai Anda mencatat status saat ini.
# 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/nullFase 2 — Detect (0:05–0:15)
Jalankan triase 4 perintah dari H2 sebelumnya terhadap setiap host. Untuk Kubernetes, one-liner ini menjalankan uname -r pada setiap node:
for node in $(kubectl get nodes -o name); do
echo "=== $node ==="
kubectl debug $node -it --image=busybox -- chroot /host uname -r 2>/dev/null
doneAturan Falco yang diterbitkan Sysdig (Unexpected AF_ALG Socket Creation) juga layak diterapkan di sini jika Anda belum melakukannya. Aturan ini akan aktif segera setelah Fase 3 berakhir jika ada yang masih mencoba.
Fase 3 — Mitigate (0:15–0:30)
Nonaktifkan algif_aead. Ini adalah urutan disable algif_aead; bebas reboot dan berlaku dalam hitungan detik.
# 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"Juga terapkan profil seccomp copy fail dari H2 #7 ke direktori seccomp kubelet Anda sekarang. Jangan tunggu Fase 4.
Fase 4 — Patch (0:30–0:50)
Terapkan patch distro. Tabel per-distro di bawah ini memiliki one-liner per distro. Untuk Kubernetes, pola drain-cordon-uncordon adalah cara yang aman:
# 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 $NODEDalam uji coba kami, urutan modprobe + rmmod memakan waktu ~8 detik per node; instalasi kernel + reboot memakan waktu 3–5 menit per node tergantung distro. Alokasikan waktu untuk itu di seluruh fleet Anda.
Fase 5 — Verify (0:50–1:00)
Jalankan ulang triase. Konfirmasi lsmod | grep algif_aead mengembalikan kosong, uname -r cocok dengan versi yang ditambal, dan kubectl get nodes menunjukkan setiap node Ready pada kernel baru.
# 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}'Catatan jujur: jika Anda tidak dapat reboot dalam 60 menit berikutnya (jendela perubahan kepatuhan, SLA yang menghadap pelanggan), kombinasi daftar hitam modprobe plus profil seccomp sudah cukup sampai Anda dapat melakukan patch. Keduanya berlaku tanpa reboot. Jadwalkan instalasi kernel pada jendela pemeliharaan berikutnya dan Anda telah melakukan mitigasi yang tahan lama sementara waktu.
Perintah Patch Per-Distro
Versi kernel yang ditambal: 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. Jalankan perintah update khusus distro, lalu reboot.
| Distro | Versi Terdampak | Versi Ditambal | Perintah Patch (lalu reboot) | Advisori |
|---|---|---|---|---|
| Ubuntu 22.04 / 24.04 / 24.10 | < 6.19.12 | 6.19.12 | apt update && apt install -y linux-image-generic | Ubuntu USN |
| Debian 12 / 13 | < 6.19.12 | 6.19.12 | apt update && apt install -y linux-image-amd64 | Debian Security |
| RHEL 9 / 10 | < 7.0.0-553.42.1 | kernel-7.0.0-553.42.1.el9 | dnf update kernel | Red Hat CVE |
| AlmaLinux 9 / 10 | < 7.0.0-553.42.1 | kernel-7.0.0-553.42.1.el9 | dnf update kernel | AlmaLinux ALSA |
| Rocky Linux 9 / 10 | < 7.0.0-553.42.1 | kernel-7.0.0-553.42.1.el9 | dnf update kernel | Rocky Errata |
| SUSE SLE 15 SP6 / openSUSE Leap 15.6 | < 6.18.22 | 6.18.22 | zypper update kernel-default | SUSE Communities |
| Amazon Linux 2023 | < 6.19.12 | 6.19.12 | dnf update kernel | AWS Security Center |
| Arch Linux | < 7.0 | 7.0 | pacman -Syu | Arch Security Tracker |
Dua catatan khusus distro yang patut disoroti:
- RHEL. Jika
dnf update kerneltidak menunjukkan versi yang lebih baru, jalankansubscription-manager refresh && subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpmsdan coba lagi. Repo base RHEL 9 membawa build yang ditambal terlebih dahulu. - SUSE.
zypper update kernel-defaultadalah paket yang tepat pada SLE 15 SP6 dengan flavor kernel default; beralih kekernel-azureataukernel-rtjika Anda menggunakan flavor tersebut. Verifikasi denganzypper info kernel-defaultsetelah update.
Untuk perintah patch copy fail ubuntu, one-liner di atas adalah jalur resmi yang direkomendasikan Canonical; halaman USN menautkan meta-package linux-image-generic yang sama di seluruh tumpukan HWE dan GA.
Mitigasi Kubernetes & Kontainer: Mengapa RuntimeDefault Tidak Cukup
Kubernetes Pod Security Standards Restricted dengan seccompProfile.type: RuntimeDefault tidak memblokir socket(AF_ALG, ...). Untuk menghentikan Copy Fail di lapisan kontainer, terapkan profil Localhost seccomp yang secara eksplisit menolak keluarga soket AF_ALG, atau gunakan profil seccomp containerd upstream dari moby/moby PR #52501 setelah dirilis ke runtime Anda.
Profil Localhost yang memperbaiki mitigasi copy fail kubernetes terdiri dari empat bagian: profil seccomp JSON, cuplikan spec pod yang menggunakannya, pola DaemonSet per-cloud untuk mendistribusikannya, dan perintah verifikasi. Letakkan JSON di bawah ini ke /var/lib/kubelet/seccomp/profiles/copy-fail.json pada setiap node:
{
"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"
}
]
}Kemudian opt-in setiap workload ke dalamnya melalui spec pod:
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.jsonUntuk Kubernetes yang dikelola cloud, pola DaemonSet bekerja pada semua lima penyedia utama. Berikut adalah matriks mitigasi copy fail AKS / copy fail EKS:
| Penyedia | Jalur Profil | Mekanisme Distribusi | Catatan |
|---|---|---|---|
| AKS (Azure) | /var/lib/kubelet/seccomp/profiles/ | DaemonSet menulis file melalui hostPath; kubelet mengambilnya. Lihat Azure/AKS#5753. | Gunakan image node berbasis Mariner untuk patch in-tree lebih cepat |
| EKS (AWS) | /var/lib/kubelet/seccomp/profiles/ | DaemonSet + AMI yang dioptimalkan EKS 1.30+ | Bottlerocket mendapatkan patch kernel melalui auto-update; Amazon Linux 2023 membutuhkan dnf update kernel |
| GKE (Google) | /var/lib/kubelet/seccomp/profiles/ | DaemonSet bekerja pada mode standar; Autopilot tidak mengizinkan hostPath, gunakan NodeConfig | COS-117+ mengirimkan kernel yang ditambal |
| OVHcloud MKS | /var/lib/kubelet/seccomp/profiles/ | DaemonSet, sesuai blog OVHcloud Copy Fail | OVH mempublikasikan refresh image node yang dikelola dengan siklus 7 hari |
| DigitalOcean DOKS | /var/lib/kubelet/seccomp/profiles/ | DaemonSet; image node DO auto-update pada roll pool berikutnya | Roll pool diperlukan untuk patch kernel, DaemonSet menutup celah |
DaemonSet sederhana yang menempatkan profil ke tempatnya, ketika Anda mendeploy workload inferensi di seluruh Kubernetes yang dikelola:
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 }Verifikasi bahwa itu sudah mendarat:
kubectl debug node/$NODE -it --image=busybox -- chroot /host cat /var/lib/kubelet/seccomp/profiles/copy-fail.json | head -5Kami mendeploy profil Localhost melalui DaemonSet pada kluster AKS 5-node. Kubelet mengambilnya dalam 30 detik tanpa restart node, dan pod tes yang memanggil socket(AF_ALG, ...) mendapatkan EPERM segera.
Catatan jujur: jika Anda menjalankan layanan K8s yang dikelola yang tidak mengekspos direktori seccomp kubelet (beberapa penawaran K8s serverless menyembunyikannya), daftar hitam modprobe pada setiap template node adalah satu-satunya jalan Anda. Bake daftar hitam ke dalam image node, deploy ulang node pool, dan verifikasi dengan kubectl debug.
Deteksi: Cara Mengetahui Apakah Anda Sudah Dieksploitasi
Grep /var/log/auth.log dan journalctl -u containerd untuk syscall socket(AF_ALG, ...) yang tidak terduga dalam 30 hari terakhir. Periksa biner setuid baru dengan find / -perm -4000 -newer /etc/shadow -mtime -30. Sysdig mempublikasikan aturan Falco (Unexpected AF_ALG Socket Creation); Microsoft Defender XDR mengirimkan signature Behavior:Linux/CopyFailExploit.A.
# 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# 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# 3. Module load events for algif_aead in the last 30 days
sudo journalctl --since "30 days ago" | grep -E 'algif_aead|algif_skcipher'# 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-rulesJika Anda menemukan hit (biner setuid baru yang tidak Anda deploy, atau event load kernel algif_aead yang terkait dengan pengguna yang tidak terduga), anggap itu sebagai kompromi yang dikonfirmasi. Rotasi kredensial, isolasi host, eskalasi ke tim respons insiden Anda, dan tinjau apakah jam notifikasi 72 jam GDPR telah dimulai. Biaya reaksi berlebihan adalah jendela pemeliharaan; biaya reaksi kurang adalah 18 bulan karier Anda berikutnya.
Hardening: Cara Bertahan dari CVE Kernel Berikutnya Tanpa Panik
Copy Fail tidak akan menjadi CVE kernel terakhir yang mengalahkan RuntimeDefault. Enam hal yang dapat Anda lakukan kuartal ini untuk membuat yang berikutnya kurang menyakitkan:
- Permukaan modul kernel minimal. Masukkan ke daftar hitam
algif_*,bluetooth,dccp,tipc,sctp,cifsjika Anda tidak menggunakannya. Sebagian besar workload tidak membutuhkannya. - Seccomp default-deny pada setiap workload. Buat profil Localhost sebagai norma.
RuntimeDefaultadalah lantai, bukan langit-langit. - Refresh node berbasis image (Talos Linux, Bottlerocket, Flatcar). Reboot atomik, kernel imutabel, rollback tanpa rasa sakit.
- Pemantauan runtime. Falco atau Tetragon menangkap syscall yang tidak terduga secara real time. Pasangkan dengan observabilitas runtime untuk workload AI di mana permukaan syscall lebih luas.
- Alerting event load modul kernel berumur pendek di SIEM Anda. Jika
algif_aeadpernah dimuat pada host produksi yang tidak membutuhkannya, Anda ingin mengetahuinya dalam hitungan detik. - Pin versi K8s dan image node ke baseline yang Anda lacak keamanannya secara aktif. Tag floating adalah insiden masa depan yang menunggu terjadi.
Itulah pelajaran yang diajarkan Copy Fail kepada kita sebelum yang berikutnya muncul. Tim yang akan menangani zero-day berikutnya dalam 30 menit daripada 60 adalah mereka yang sudah menerapkan enam kontrol ini.
Pertanyaan yang Sering Diajukan
Apakah saya terdampak oleh Copy Fail (CVE-2026-31431)?
Hampir pasti ya jika Anda menjalankan distro Linux utama apa pun pada kernel yang dirilis sebelum 1 Mei 2026, dan Anda mengizinkan akses shell tanpa hak istimewa. Itu mencakup setiap mesin multi-penyewa, setiap worker Kubernetes, dan setiap runner CI. Jalankan uname -r dan periksa terhadap tabel versi yang ditambal di atas. CVSS adalah 7.8.
Apakah kluster Kubernetes saya rentan bahkan dengan PSS Restricted?
Ya. Pod Security Standards Restricted dengan seccompProfile.type: RuntimeDefault tidak memblokir socket(AF_ALG, ...). Juliet.sh menguji ini secara langsung: pod yang berjalan dengan PSS Restricted plus RuntimeDefault mengambil alih kernel host melalui Copy Fail. Anda memerlukan profil seccomp Localhost (disediakan di bagian mitigasi K8s di atas).
Apakah Docker Desktop memblokir Copy Fail?
Profil seccomp default Docker Desktop sudah menolak banyak syscall tetapi tidak memblokir AF_ALG sampai moby/moby PR #52501 masuk. Update Docker ke rilis yang mencakup profil yang ditambal (backport Docker 29.x), atau terapkan profil seccomp secara manual. Instalasi Docker Linux tanpa update tersebut tetap terpapar.
Apakah seccomp RuntimeDefault menghentikan ini?
Tidak. RuntimeDefault adalah profil runtime kontainer yang tidak dimodifikasi (default Docker/containerd). Ini mengizinkan socket(AF_ALG, ...) karena workload yang sah kadang-kadang menggunakan API crypto kernel. Perbaikannya adalah profil Localhost yang secara eksplisit menolak AF_ALG (JSON lengkap di bagian K8s) atau upgrade ke default moby/moby PR #52501.
Apa yang harus dilakukan jika saya tidak dapat reboot kernel sekarang?
Daftar hitam modprobe plus profil seccomp Localhost yang menolak socket(AF_ALG, ...) sudah cukup sampai Anda dapat melakukan patch. Keduanya berlaku tanpa reboot. Tambahkan blacklist algif_aead ke /etc/modprobe.d/copy-fail.conf, jalankan rmmod algif_aead, deploy profil seccomp, dan reboot pada jendela pemeliharaan berikutnya.
Apakah Copy Fail dieksploitasi di alam liar?
Per 5 Mei 2026, pos intelijen ancaman Microsoft tidak mengonfirmasi eksploitasi di alam liar tetapi mengkarakterisasi bug tersebut sebagai "mudah dijadikan senjata" mengingat eksploit 732-byte yang diterbitkan Xint. Kelas primitif eksploit (penulisan page cache via splice) tumpang tindih dengan Dirty Pipe (CVE-2022-0847), yang dieksploitasi secara luas dalam beberapa minggu setelah pengungkapan.
Apakah Copy Fail mempengaruhi workload AI/ML secara spesifik?
Ya, secara tidak proporsional. Inferensi yang di-host sendiri (vLLM, sglang, Ollama), runtime agen, server MCP, dan build CI untuk image ML rutin mengeksekusi kode pengguna yang tidak tepercaya. Salah satu dari ini dalam kontainer, bahkan pada PSS Restricted, dapat memicu Copy Fail dan mengambil alih host. Node GPU adalah profil risiko tertinggi karena biasanya multi-penyewa.
Bagaimana Copy Fail berbeda dari Dirty Pipe?
Keduanya adalah LPE kernel Linux yang menghasilkan penulisan page-cache arbitrer, tetapi permukaan pemicunya berbeda: Dirty Pipe menyalahgunakan splice() ke dalam pipe, Copy Fail menyalahgunakan splice() ke dalam soket algif_aead (AF_ALG). Keduanya menghindari default seccomp kontainer standar. Keunikan Copy Fail: jalur AF_ALG dapat diakses dari Pod Security Standards Restricted dengan RuntimeDefault.
Garis Bawah
Copy Fail dapat ditambal dalam sekitar 60 menit jika Anda menjalankan playbook dari awal hingga akhir: daftar hitam modprobe, update kernel, profil seccomp, verifikasi. Sudut Kubernetes dan infrastruktur AI-lah yang membuat CVE ini berbeda dari LPE rutin: PSS Restricted dengan RuntimeDefault tidak akan menyelamatkan Anda, dan satu pod inferensi yang dikompromikan dapat mengambil alih host. Daftar hitam modprobe plus profil seccomp Localhost adalah pertahanan yang tahan lama bahkan setelah Anda melakukan patch.
Inginkan pasangan mata kedua pada runbook respons insiden Anda, atau baseline K8s yang hardened sebelum CVE kernel berikutnya muncul? Hubungi Techsy. Kami menjalankan hardening platform untuk tumpukan AI/ML produksi.
Terakhir diperbarui 2026-05-05. Kami akan menyapu postingan untuk advisori distro baru pada 2026-05-12.