<- Grįžti į blogą
Robertas Želvys·2026 m. spalio 22 d.·6 min skaitymo

php2shell pažeidžiamumai (CVSS 9.2): ką privalo žinoti vadovai

Patvirtinti php2shell pažeidžiamumai (CVE-2026-109618 ir CVE-2026-109619) su CVSS 9.2 balu. Techninė analizė, audito žingsniai ir būtini sprendimai verslui.

WebPatarimaiArchitektūrasaugumas, php
php2shell pažeidžiamumai (CVSS 9.2): ką privalo žinoti vadovai
Esmė

Kritinis CVSS 9.2 įvertinimas reiškia nutolinio kodo vykdymo (RCE) grėsmę be autorizacijos. Būtina nedelsiant patikrinti failų apdorojimo grandines ir apriboti PHP vykdymo teises serveryje.

Saugumo bendruomenė oficialiai patvirtino kritinius saugumo defektus, bendrai žinomus kaip „php2shell“. Spalio 21 dieną paskelbti du atskiri identifikatoriai: CVE-2026-109618 ir CVE-2026-109619. Abiejų pažeidžiamumų bendras rizikos indeksas pagal CVSS v3.1 siekia 9.2 iš 10 galimų balų.

Tai nėra teorinė problema ar akademinis saugumo įrodymas. CVSS 9.2 balas indikuoja kritinį pažeidžiamumą, kurį piktavaliai gali išnaudoti nuotoliniu būdu, be išankstinės autorizacijos ar specifinių naudotojo teisių sistemoje. Šio incidento esmė – galimybė manipuliuoti PHP failų įkėlimo, deserializacijos ar laikino saugojimo mechanizmais, paverčiant įprastas užklausas į interaktyvią komandinę eilutę (angl. *web shell*).

Lietuvos verslui, kur didelė dalis savitarnos portalų, el. prekybos platformų ir nestandartinių vidinių sistemų yra pastatyta PHP pagrindu (naudojant Laravel, Symfony ar atvirojo kodo TVS), ši žinia reiškia tiesioginį poreikį atlikti neplanuotą infrastruktūros reviziją.

Techninė anatomija: kas slypi po CVE-2026-109618 ir CVE-2026-109619

Abu registruoti CVE įrašai sprendžia glaudžiai susijusias problemas PHP interpretatoriaus ir populiarių priklausomybių sąveikoje. Pagrindinis vektorius remiasi netinkamu multipart formų apdorojimu ir duomenų srautų interpretavimu.

- CVE-2026-109618: Ši spraga susijusi su buferio perpildymo ir tipo painiavos (angl. *type confusion*) rizika apdorojant specifines MIME antraštes multipart užklausose. Užpuolikas suformuoja nestandartinį HTTP paketą, kurio dėka apeinamas numatytasis PHP parametrų nuskaitymo modulis, o duomenų baitai įrašomi tiesiai į laikiną atminties sritį su vykdomojo failo teisėmis.

- CVE-2026-109619: Šis pažeidžiamumas dengia logikos defektą, leidžiantį apeiti failų išplėtimų ir turinio validaciją. Net jei aplikacijos kodas tikrina, ar įkeliamas failas yra PDF ar JPEG formatu, manipuliacija failų deskriptoriais (naudojant nulinius baitus arba dvigubus srautus) leidžia interpretatoriui išsaugoti failą kaip .php arba apeiti web serverio nukreipimo taisykles, atveriant tiesioginį vykdymo kelią.

Kai šie du pažeidžiamumai sujungiami į vieną grandinę, gaunamas klasikinis „php2shell“ scenarijus: užpuolikui pakanka nusiųsti vieną asinchroninę POST užklausą į bet kurį atvirą formos galinį tašką (angl. *endpoint*), ir serveryje atsiranda nuotoliniu būdu valdomas procesas su web serverio naudotojo (www-data arba nginx) teisėmis.

# Tipinis automatizuotų atakų požymis serverio žurnale

POST /api/v1/upload HTTP/1.1

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryX99

... [kenkėjiškas srautas apeinantis MIME patikrą] ...

Result: 200 OK -> /var/www/html/storage/app/public/shell.php (vykdomas kodas)

Kodėl CVSS 9.2 reikalauja neatidėliotinų veiksmų

Saugumo metrikose vertinimas virš 9.0 reiškia avarinę situaciją. Tokio pobūdžio spragos automatizuotų botnetų tinkluose paprastai pradedamos skenuoti praėjus kelioms valandoms po viešo kodo pavyzdžių (PoC) pasirodymo.

Verslo požiūriu, atakos pasekmės nėra vien techninis nepatogumas. Gavęs prieigą prie shell lygmens, užpuolikas pasiekia:

- Konfigūracinius failus ir slaptažodžius: Prieiga prie .env failų, duomenų bazių prisijungimų, trečiųjų šalių API raktų (mokėjimų vartai, el. pašto paslaugos).

- Klientų ir finansinius duomenis: Tiesioginis duomenų bazės nuskaitymas apeinant aplikacijos lygmens autorizaciją ir logus.

- Lateralinį judėjimą tinkle: Iš pažeisto web serverio atakuojami kiti vidinio tinklo mazgai, ERP sistemos ar atsarginių kopijų saugyklos.

- Išpirkos reikalaujančių programų įdiegimą: Šifruojami duomenų bazių tomai ir aplikacijos išeities kodas.

Atakos etapasPoveikis sistemaiVerslo pasekmė
Skenavimas ir įsiskverbimasRCE per modifikuotą HTTP užklausąJokio pirminio pastebimo poveikio veikimui
Shell įtvirtinimasNuotolinio kodo vykdymas su www-data teisėmisNekontroliuojamas procesas serverio atmintyje
Duomenų eksfiltracijaSQL bazių ir .env failų kopijavimasBDAR / GDPR pažeidimai, prarasta reputacija
Serviso kompromitavimasKriptovaliutų kasimas arba duomenų šifravimasPrastovos, prarastos pajamos, atkūrimo kaštai

Ar jūsų sistemos pažeidžiamos: patikros planas

Kiekvienas techninis vadovas privalo atlikti tris paprastus, bet kritinius žingsnius, kad nustatytų esamą infrastruktūros būklę.

1. PHP versijos ir plėtinių revizija

Patikrinkite naudojamą PHP versiją visose gamybinėse (angl. *production*) ir testinėse aplinkose. Ypatingą dėmesį atkreipkite į konteinerizuotas sistemas (Docker, Kubernetes), kuriose dažnai lieka seni baziniai atvaizdai (angl. *base images*).

# Patikrinkite veikiančios PHP versijos kompiliavimo datą ir atnaujinimus

php -v

# Patikrinkite aktyvius modulius, atsakingus už srautų apdorojimą

php -m

grep -E 'filterfileinfo
mbstring'

2. Įkeliamų failų katalogų teisių analizė

Vienas dažniausių architektūrinių aplaidumų – leisti vykdyti PHP failus viešai pasiekiamuose kataloguose. Jei jūsų failų saugykla (/storage, /uploads, /media) leidžia kodo interpretavimą, rizika tampa tiesioginė.

- Įsitikinkite, kad web serverio konfigūracijoje (Nginx arba Apache) visiškai uždraustas PHP skriptų vykdymas statinių failų kataloguose.

- Patikrinkite failų sistemos teises: web serverio naudotojas neturėtų turėti rašymo teisių į katalogus, iš kurių vykdomas pagrindinis aplikacijos kodas.

3. Serverio žurnalų (logų) peržiūra

Atlikite greitą žurnalų analizę, ieškodami anomalių POST užklausų su neįprastai ilgomis antraštėmis ar įtartinais failų pavadinimais, sugeneruotais per pastarąsias paras nuo spalio 21 dienos.

Būtini sprendimai: neatidėliotina ir ilgalaikė gynyba

Norint neutralizuoti „php2shell“ riziką, reikalingas dviejų lygių atsakas: skubus gaisrų gesinimas ir sisteminis perimetro stiprinimas.

Skubūs veiksmai (per artimiausias 24 valandas)

- WAF taisyklių atnaujinimas: Jei naudojate Cloudflare, AWS WAF ar panašius sprendimus, įsitikinkite, kad įjungtos naujausios taisyklės, skirtos CVE-2026-109618 ir CVE-2026-109619 filtravimui. Griežtas multipart užklausų filtravimas WAF lygyje gali sustabdyti ataką dar prieš jai pasiekiant jūsų serverį.

- PHP branduolio pataisų diegimas: Nedelsiant atnaujinkite PHP paketus distribucijos lygmeniu (naudojant apt update && apt upgrade arba atnaujinant oficialius Docker atvaizdus iki versijų, išleistų po spalio 21 d.).

- Pavojingų funkcijų išjungimas: php.ini faile apribokite sisteminių funkcijų vykdymą, jei tai netrikdo pagrindinio aplikacijos veikimo:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Ilgalaikė architektūrinė higiena

Skubūs pataisymai apsaugo nuo žinomų spragų, tačiau atspari architektūra eliminuoja pačią atakos klasę:

- Atskyrimas per objektų saugyklas (S3): Nelaikykite naudotojų įkeliamų failų tame pačiame serveryje, kur veikia programinis kodas. Visi failai turi keliauti tiesiai į privačius S3 ar suderinamus debesis, kur PHP interpretatorius fiziškai neegzistuoja.

- **Konteinerių tik skaitymo (angl. *read-only*) režimas: Paleiskite gamybinius Docker konteinerius su parametru --read-only. Tai reiškia, kad net jei užpuolikui pavyktų sukurti failą atmintyje, failų sistema atmes bet kokį bandymą įrašyti skriptą į diską.

- Nuolatinis priklausomybių auditas**: Įtraukite automatizuotą paketų tikrinimą į savo CI/CD procesus. Bet koks atviro kodo bibliotekų atnaujinimas turi būti testuojamas ir diegiamas pagal griežtą procedūrą, o ne atidėliojamas mėnesiams.

Išvada

Spalio 21 d. patvirtinti CVE-2026-109618 ir CVE-2026-109619 pažeidžiamumai rodo, kad net brandžios technologijų ekosistemos turi kritinių vietų. CVSS 9.2 balas yra signalas, kad IT infrastruktūros priežiūra negali būti pasyvi. Organizacijos, kurios pasitiki principu „jei veikia – nelieskime“, patiria didžiausius nuostolius.

Šios spragos pašalinimas reikalauja sistemingo požiūrio: nuo serverio konfigūracijos iki aplikacijos kodo architektūros. Laiku atliktas auditas ir pataisų pritaikymas leidžia neutralizuoti riziką anksčiau, nei ji virsta finansiniu ar teisiniu nuostoliu.

Turite klausimų ar norite aptarti savo projektą?

Susisiekti