...

Copy Fail – Kritikus Linux sebezhetőség: 732 bájt elegendő a root jogosultsághoz

CVE-2026-31431 | Súlyosság: MAGAS (CVSS 7.8) | Érintett rendszerek: szinte minden Linux disztribúció 2017 óta

 

Április 29-én a Theori biztonsági kutatócég nyilvánosságra hozta a CVE-2026-31431 azonosítójú sebezhetőséget, amelyet a kutatók „Copy Fail" névre kereszteltek. A hiba a Linux kernel kriptográfiai alrendszerében bújt meg — és 2017 óta jelen van szinte minden nagyobb disztribúcióban, észrevétlenül.

A sebezhetőség lényege ijesztően egyszerű: egyetlen, mindössze 732 bájtos Python szkript elegendő ahhoz, hogy egy jogosultság nélküli, helyi felhasználó root hozzáférést szerezzen Ubuntu, RHEL, Amazon Linux, SUSE és más rendszereken — bármiféle versenyfeltétel, kernel összeomlás vagy disztribúció-specifikus hangolás nélkül.


Mi a Copy Fail, és miért más, mint a korábbi hasonló hibák?

A Linux kernelnek korábban is voltak komoly jogosultság-kiterjesztési sebezhetőségei. A Dirty Cow (2016) versenyhelyzet kihasználásán alapult — sokszor több próbálkozást igényelt, és néha összeomlott tőle a rendszer. A Dirty Pipe (2022) verziófüggő volt, és precíz puffer-manipulációt követelt meg.

A Copy Fail ezekhez képest egy egészen más szintet képvisel:

  • Determinisztikus: Versenyhelyzet nélkül, egyenesen lefut. Nem kell vele próbálkozni — elsőre működik.
  • Hordozható: Ugyanaz a szkript fut Ubuntu-n, Amazon Linuxon, RHEL-en és SUSE-on egyaránt. Nincs szükség disztribúció-specifikus beállításra, újrafordításra, verzióellenőrzésre.
  • Apró: A teljes exploit egyetlen rövid Python szkript, kizárólag standard könyvtári modulokkal (os, socket, zlib). Python 3.10+ szükséges az os.splice miatt. Sem lefordított kód, sem külső függőség.
  • Lopakodó: Az írás megkerüli a megszokott VFS írási útvonalat. A sérült oldalt a kernel visszaírási gépezetének szempontjából soha nem jelöli meg piszkosként — ezért a lemezen lévő fájl változatlan marad. A hagyományos fájlintegritás-ellenőrző eszközök (amelyek a lemezen lévő ellenőrzőösszegeket hasonlítják össze) nem fogják észrevenni a módosítást.
  • Konténereken is átlép: Az oldal-gyorsítótár (page cache) az egész rendszer összes folyamata által közösen használt — a konténerhatárokon is. A Copy Fail nemcsak helyi jogosultság-kiterjesztés: konténer-szökési primitívként és Kubernetes csomópont-kompromittálási vektorként is működik.

Hogyan működik? (Technikai háttér)

A hiba gyökere a kernel algif_aead moduljában rejlik — ez az a komponens, amely az AF_ALG socketen keresztül elérhetővé teszi a kernel kriptográfiai alrendszerét a jogosultság nélküli felhasználói tér számára.

A támadási lánc három elemből áll:

1. Az oldal-gyorsítótár manipulálása splice()-szal

A splice() rendszerhívás fájlleíró és pipe között anélkül mozgat adatot, hogy azt másolná — az oldal-gyorsítótár lapjait referenciával adja át. Ha egy felhasználó egy fájlt pipe-on keresztül egy AF_ALG socketbe fűz, a socket bemeneti szórási listája (scatterlist) közvetlen hivatkozásokat tartalmaz a kernel által a fájlhoz gyorsítótárazott lapokra. Ezek nem másolatok — ezek ugyanazok a fizikai lapok, amelyeket minden read(), mmap() és execve() hívás is használ.

2. A helyben végzett (in-place) AEAD művelet hibája

Az algif_aead.c fájlban az AEAD dekódolási recvmsg() a műveletet helyben (in-place) állítja be: ugyanaz a szórási lista szolgál bemenetként és kimenetként is. Az AAD és a titkosított szöveg másolódik a felhasználói pufferbe — de a hitelesítési tag (authentication tag) lapjai nem másolódnak, hanem láncolt hivatkozásként kerülnek a kimeneti szórási listába, közvetlenül a legális írási régió mögé.

3. Az authencesn vakarása a pufferen túl ír

Az authencesn az IPsec által használt AEAD-burkoló a kibővített sorszámok (ESN) kezelésére. Dekódolás során az ESN bájtokat átrendezi — és ehhez a hívó célpufferét scatch területként használja, az érvényes AEAD kimeneti területen túl is ír 4 bájtot.

Ez a 4 bájtos felülírás a helyben végzett elrendezésben átlép a kimeneti pufferből a láncolt oldal-gyorsítótár lapokra. A kernel visszaad egy hibakódot (a titkosított szöveg hamis), de a 4 bájtos, ellenőrzött felülírás megmarad a céllapban.

A támadó teljes kontrollja van:

  • Melyik fájlt írja felül (bármely olvasható fájl),
  • Melyik eltolást (az ESN paraméterek megválasztásával),
  • Milyen értékkel (a sendmsg() hívásban az AAD 4–7. bájtjaival).

Egy setuid bináris (pl. su) oldal-gyorsítótárának manipulálásával az ártó szándékú helyi felhasználó rootot szerez, amint bármely privilegizált folyamat futtatja a sérült verziót.


Érintett rendszerek

A sebezhetőség minden olyan Linux disztribúciót érint, amely a 4.14 és 6.19.12 közötti upstream stabil kernel verziót szállítja. A hiba 2017-re nyúlik vissza, és közel tíz évnyi kernelfejlesztés során maradt észrevétlen.

Közvetlenül érintett (a kutatók által ellenőrzött) disztribúciók:

  • Ubuntu (az Ubuntu 26.04 „Resolute" kivételével)
  • Red Hat Enterprise Linux / Rocky Linux / AlmaLinux
  • SUSE / openSUSE
  • Amazon Linux
  • Debian
  • Fedora
  • Arch Linux
  • Oracle Linux

Mit tegyél most? – Azonnali teendők

1. lépés: Azonnali enyhítés — az érintett modul letiltása

Amíg a kernelfrissítés nem érhető el, tiltsd le az algif_aead modult:

echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif_aead.conf
sudo modprobe -r algif_aead

Ha a modul jelenleg használatban van és nem tölthető le, újraindítás szükséges a hatályba lépéshez.

Megjegyzés: Az enyhítés eltávolíthatja a hardveresen gyorsított kriptográfiai funkciókat, de a legtöbb felhasználó számára ez nem érzékelhető a mindennapi használatban.

2. lépés: Kernelfrissítés telepítése, amint elérhető

Ubuntu-n (ha a frissítés már elérhető):

sudo apt update && sudo apt upgrade -y
sudo reboot

Fedora / RHEL alapú rendszereken:

sudo dnf upgrade -y
sudo reboot

Az újraindítás biztosítja, hogy az enyhítés és/vagy a javítás hatályba lépjen.

3. lépés: Ellenőrizd a kmod csomag verzióját (Ubuntu)

apt-cache policy kmod

Ubuntu esetén az Ubuntu Biztonsági Csapata kiadta az enyhítéseket, amelyek letiltják az érintett Linux kernel modult a kmod csomagban. A javított kernel csomagok hamarosan megjelennek. Ha az unattended-upgrades funkció engedélyezve van (Ubuntu 16.04 LTS óta alapértelmezett), a foltok automatikusan alkalmazásra kerülnek a rendelkezésre állásuktól számított 24 órán belül.


Konténerek és Kubernetes: extra veszély

A sebezhetőség megbízhatósága, lopakodó jellege (csak memóriában módosít) és cross-platform alkalmazhatósága különösen veszélyes felhős, CI/CD és Kubernetes környezetekben, ahol megbízhatatlan kód futtatása általános.

Ha konténermunkaterheléseket futtatsz, a CERT-EU erősen ajánlja az azonnali enyhítés alkalmazását, különösen a Kubernetes csomópontokon és a nem megbízható munkaterheléseknek kitett CI/CD runnereken.

A konténerizáció nem nyújt védelmet: az oldal-gyorsítótár az egész gazdagép számára közös, a névtérhatárok nem elegendőek.


Hogyan találták meg? Az AI szerepe

A Copy Failt részben mesterséges intelligencia segítségével fedezték fel. A Theori kutatója, Taeyang Lee a Linux kriptográfiai alrendszer és az oldal-gyorsítótár interakcióját vizsgálta, majd az Xint Code AI biztonsági eszközzel skálázta fel a kutatást a teljes crypto/ alrendszerre — egyetlen operátor-prompttal, nagyjából egy óra elemzési idő alatt.

Ez az eset jól mutatja, hogyan változtatja meg az AI a biztonsági kutatást: a korábbi kernelosztályú hibák megtalálása rengeteg manuális erőfeszítést igényelt. Most egy strukturált emberi betekintés + AI szkennelés elegendő volt egy évtizedes, kritikus bug felszínre hozásához.


Összefoglalás

Jellemző Részlet
CVE azonosító CVE-2026-31431
Köznapi név Copy Fail
CVSS pontszám 7.8 (MAGAS)
Érintett kernel verziók 4.14 – 6.19.12
Nyilvánosságra hozatal 2026. április 29.
Exploit mérete 732 bájt (Python)
Helyi jogosultság-kiterjesztés ✅ Igen
Konténer-szökés ✅ Igen
Azonnali enyhítés algif_aead modul letiltása

 

A Copy Fail az elmúlt évek egyik legsúlyosabb Linux kernel sebezhetősége. Ha Linux rendszert kezelsz — legyen az asztali gép, szerver, vagy felhős infrastruktúra — most azonnal frissíts!!!

Hozzászólások(0)

A hozzászóláshoz be kell jelentkezned.

Bejelentkezeés