Lühidalt: CVE-2026-109618 on üks kahest PHP2Shelli taga olevast turvaaugust. Mälupuuduse (Out-of-Memory) seisund võib PHP katkestada, kui päringuandmed on alles osaliselt lähtestatud; koristamisel võidakse siis kehtetuid andmeid pidada kehtivateks. See võimaldab koodi käivitamist ilma sisselogimata. Viga on parandatud versioonides PHP 8.5.12, 8.4.27, 8.3.36 ja 8.2.35.
Mis on CVE-2026-109618?
CVE-2026-109618 (GitHubi tähis GHSA-w8hw-w9fx-j79w) on mälu vea turvaauk PHP tuumas. See on hinnatud CVSS v4.0 järgi 9,2. Koos CVE-2026-109619-ga moodustab see selle, mida meedias nimetatakse PHP2Shelliks.
Mõju on nn unauthenticated Remote Code Execution: ründaja saab kaugelt ja ilma kasutajakontota veebiserveris koodi käivitada. Sellega kuulub turvaauk kõige ohtlikumasse nõrkuste klassi, mis veebiserveril olla võib.
Kuidas turvaauk põhimõtteliselt tekib
Kui PHP töötleb veebipäringut, loob see sisemiselt selle päringu jaoks andmestruktuure, näiteks edastatud vormiandmete jaoks. Kui PHP jõuab seejuures oma mälupiirini, katkeb töö mälupuuduse (Out-of-Memory) seisundiga. php.net-i järgi võib see juhtuda, kui päringuandmed on alles osaliselt lähtestatud.
Iga päringu lõpus PHP koristab ja vabastab mälu. Just seal peitub viga: koristamine võib käsitleda kehtetuid, ainult pooleldi loodud andmeid kehtivatena. Sellest veast saab teatud tingimustel tuletada koodi käivitamise.
Miks on selline viga nii tõsine? Mäluviga programmeerimiskeeles puudutab kõiki sellel töötavaid rakendusi, olenemata sellest, kui hoolikalt need on programmeeritud. Hooldatud WordPressi paigaldus värskete pluginatega on sama mõjutatud kui vana oma arendus. Seetõttu ei aita siin rakenduse uuendus, vaid ainult PHP uuendus.
Täiendavaid tehnilisi üksikasju ekspluateerimise kohta me teadlikult ei avalda. Kaitseks pole need vajalikud: otsustav on, kas teie server kasutab parandatud versiooni ja kas uued protsessid tegelikult töötavad.
Mõjutatud versioonid ja töörežiimid
| PHP haru | Viimane seis enne parandust | Parandatud alates |
|---|---|---|
| 8.5 | 8.5.11 | 8.5.12 |
| 8.4 | 8.4.26 | 8.4.27 |
| 8.3 | 8.3.35 | 8.3.36 |
| 8.2 | 8.2.34 | 8.2.35 |
| 8.1 ja vanemad | ametlikku uuendust pole | ainult minimaalsed lähtekoodi tagasiportimised versioonidele 7.4, 8.0, 8.1 |
Mõjutatud on töörežiimid PHP-FPM, Apache koos mod_php-ga, php-cgi, FrankenPHP ja LiteSpeed. PHP meeskond hindab riski mod_php puhul kõige suuremaks. Distributsioonid ja veebimajutajad portivad parandusi osaliselt tagasi, nii et kuvatakse vanemat versiooninumbrit, kuigi viga on parandatud. Määrav on paketi seis ja pakkuja kinnitus.
Suurusjärgust: Palo Alto Networks (Unit 42) luges kokku üle 22,6 miljoni avalikult ligipääsetava, potentsiaalselt haavatava instantsi. BSI on välja kuulutanud hoiatustaseme 3 (oranž) ja arvestas kiire laiaulatusliku ärakasutamisega.
CVE-2026-109618 kõrvaldamine: uuendus ja taaskäivitus
Ainus täielik abinõu on uuendus. Kontrollige kõigepealt versiooni ja paketi seisu. Paketinimed erinevad distributsiooniti; näited lähtuvad PHP 8.3-st:
php -v
apt policy php8.3-fpm # Debian/Ubuntu
dnf info php-fpm # RHEL, AlmaLinux, Rocky, Fedora
rpm -q --changelog php-fpm | grep -i "CVE-2026-109618"
Kui paketi muudatuslogis on CVE-number nimetatud, on tagasiportimine paigaldatud. Kui seda pole, ei tähenda see automaatselt, et pakett on haavatav; siis aitab võrdlus versioonitabeliga või päring pakkujalt.
Pärast uuendust tuleb kõik PHP protsessid uuesti käivitada, näiteks käsuga systemctl restart php8.3-fpm või mod_php puhul Apache'i taaskäivitusega. Kuidas tagada, et ükski vana tööprotsess enam ei tööta, on kirjas lehel PHP-FPM-i ja kõigi tööprotsesside taaskäivitus.
Ajutised meetmed, kui uuendus veel ei õnnestu
php.net on PHP2Shelli kohta avaldanud ajutised meetmed. Need kehtivad mõlema turvaaugu kohta ühiselt ja ei ole selgesõnaliselt täielik kaitse. See, et mitu neist puudutab mälupiire, sobib CVE-2026-109618 mälupuuduse (Out-of-Memory) käivitajaga; ametlikku üksikute meetmete seostamist üksikute CVE-dega aga ei ole.
; Näide FPM-i poolist, nt /etc/php/8.3/fpm/pool.d/www.conf (tee on distributsiooniti erinev)
; post_max_size: 32M, kui üleslaadimised on vajalikud; upload_max_filesize alati väiksem kui post_max_size
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M ; 32M, kui üleslaadimised on vajalikud
php_admin_value[upload_max_filesize] = 6M ; alati väiksem kui post_max_size
php_admin_flag[session.upload_progress.enabled] = off
Väärtused tuleb määrata nii, et rakendused ei saa neid üle kirjutada, seetõttu php_admin_value. Seadega memory_limit=-1 vajab teenus väljastpoolt mälupiirangut, konteineri või cgroupi kaudu, mitte RLIMIT_AS või RLIMIT_DATA kaudu. PHP 8.5 puhul lisandub fatal_error_backtraces=0. Kõik üksikasjad on lehel Kohesed meetmed, kui te veel paigata ei saa.
Kui ei uuendus ega ajutised meetmed ole kohe võimalikud, soovitab BSI mõjutatud veebiserverid ajutiselt võrgust maha võtta.
Kuidas PHP SOS konkreetselt aitab?
Oma PHP paikamisteenuse kaudu sulgeme CVE-2026-109618 struktureeritult:
- Tegeliku seisu kaardistamine: PHP haru, töörežiim, paketiallikas ja tagasiportimise seis iga serveri kohta.
- Uuenduse paigaldamine sobivast paketiallikast või, kus see ei õnnestu, ajutiste meetmete korrektne seadmine poolis või serveri seadistuses.
- Taaskäivituse kontroll: Kontrollime, et vanu PHP protsesse enam ei tööta.
- Tõend: Saate dokumentatsiooni versioonide ja paketi seisudega enne ja pärast sekkumist, näiteks juhtkonnale, kindlustajale või andmekaitsele.
Korduma kippuvad küsimused
Kui kriitiline on CVE-2026-109618?
Turvaauk on hinnatud CVSS v4.0 järgi 9,2 ja seega kriitiliseks. See võimaldab kahjuliku koodi kaugkäivitust ilma sisselogimata. BSI on PHP2Shelli kohta välja kuulutanud hoiatustaseme 3 (oranž).
Kas piisab memory_limit'i tõstmisest?
Ei. php.net nimetab seadet memory_limit=-1, seadistatuna kindlalt serveri seadistuses, ühe mitmest ajutisest meetmest. See ei ole selgesõnaliselt täielik kaitse ja vajab mälupiirangut konteineri või cgroupi kaudu. Lahenduseks jääb uuendus.
Milline GHSA-tähis kuulub CVE-2026-109618 juurde?
GitHub Security Advisory's on turvaauk kirjas tähisega GHSA-w8hw-w9fx-j79w. Teisel PHP2Shelli turvaaugul, CVE-2026-109619, on tähis GHSA-6wmf-4rv5-p3rp.