Praegune olukord: PHP2Shell. Kaks kriitilist PHP turvaauku (CVSS 9,2) lubavad kahjulikku koodi ilma sisselogimata. Paigad alates 21.10.2026.Mida nüüd teha →

Laravel turvaauk PHP2Shell: rakenduste õige kaitsmine

PHP2Shell tabab Laravel rakendusi PHP kaudu. Lisaks paigale on Laraveli puhul olulised eelkõige queue-töötajad, Octane, fail .env ja kaust storage.

Seis Lugemisaeg 3 minPlatvormid

Lühidalt: Laraveli turvaauk, mida praegu paljud arendajad otsivad, on PHP2Shell ja asub PHP-s endas. Laraveli uuendus seda ei sulge. Olulised on paigatud PHP, kõigi protsesside, sealhulgas queue-töötajate ja Octane'i, taaskäivitus ning failide .env, storage ja public kontroll.

Mida PHP2Shell Laravel rakendustele tähendab

Laravel on paljude oma arenduste alus: klienditeenindusportaalid, sisemised tööriistad, broneerimissüsteemid, rakenduste API-d. PHP turvaaugud CVE-2026-109618 ja CVE-2026-109619 võimaldavad PHP meeskonna andmetel kahjuliku koodi kaugkäivitamist ilma sisselogimiseta. Kui puhas Laraveli kood on, sealjuures rolli ei mängi.

Mõjutatud on töörežiimid PHP-FPM, Apache koos mod_php-ga, php-cgi, FrankenPHP ja LiteSpeed. Laravel Octane võib kasutada serverina FrankenPHP-d; siis asub PHP FrankenPHP programmis või konteineri tõmmises ja uuendatakse sellega koos. Kuidas see FrankenPHP puhul välja näeb, kirjeldab leht FrankenPHP kaitsmine.

Laraveli turvaauk: PHP versiooni ja protsesside kontrollimine

Käsurealt näitab php artisan about PHP versiooni, Laraveli versiooni ja olulisi sätteid, nagu keskkond ja silumisrežiim. See on aga CLI-PHP versioon. Veebipäringuid töötleb PHP-FPM või Octane ja see võib olla teine versioon. Laske kahtluse korral haldajal kinnitada, milline pakettide seis töötab kõigil teedel.

Upstream'i parandatud versioonid on 8.5.12, 8.4.27, 8.3.36 ja 8.2.35, tagasiportimised (backport) võivad kanda vanemaid numbreid. Milliseid PHP versioone teie Laraveli versioon toetab, kontrollige süsteeminõuete järgi dokumentatsioonis lehel laravel.com.

Pärast uuendust tuleb osa, mis Laraveli puhul kõige sagedamini ununeb: pikaealised protsessid.

# Versioonide ja konfiguratsiooni kuvamine
php artisan about
# Queue-töötajatele korralduse andmine pärast praegust tööd lõpetada
php artisan queue:restart
# Horizoni lõpetamine, et protsessihaldur selle uuesti käivitaks
php artisan horizon:terminate

Töötajad käivituvad pärast seda uuesti ainult siis, kui neid jälgib protsessihaldur, näiteks Supervisor või systemd. Octane'i serverid ja konteinerid tuleb täielikult taaskäivitada või uue tõmmisega välja rullida. Konteinerlahenduste puhul kehtib PHP paikamine Dockeri konteinerites.

Kus Laravel rakendused on haavatavad

Koht Sisu Kontrollpunkt
.env APP_KEY, andmebaas, e-post, API võtmed Ei tohi kunagi veebi kaudu kättesaadav olla
bootstrap/cache/config.php Vahemällu salvestatud konfiguratsioon saladustega Õigused, muutmiskuupäev
public/ Dokumendijuur koos index.php Lisa-PHP failid
storage/app/public Üleslaadimised, kättesaadavad kaudu public/storage PHP faile pole
storage/logs/ laravel.log, sageli päringuandmetega Varundada, mitte avalik
vendor/ Composeri paketid composer audit, võrdlus composer.lock-iga

Kaust storage/app/public on sümboolse lingi kaudu kättesaadav aadressil public/storage. Sinna paigutatud PHP faili võib olenevalt serveri konfiguratsioonist otse käivitada. Blokeerige see veebiserveri tasemel.

Oluline

APP_DEBUG peab tootmises olema väärtusel false. Silumisväljundiga veateade võib näidata keskkonnamuutujaid, radu ja osi koodist ning teeb iga ründaja töö lihtsamaks.

Admin-liidesed ja paketid riskina

Laravel rakendustel ei ole ühtset admin-liidest. Sageli on need oma alad või paketid, nagu Filament või Nova. Kontrollige, kellel on admin-õigused, kas sisselogimisel on kaheastmeline autentimine ja kas admin-marsruudid peavad väljastpoolt kättesaadavad olema. Ka API märke (token), näiteks Sanctumist või Passportist, tuleks kahtluse korral tühistada ja uuesti välja anda.

Kontrollige lisaks, kas arenduse tööriistad on tootmises kättesaadavad, näiteks silumisribad, Telescope või testmarsruudid. Need näitavad sageli päringuid, päringuid andmebaasi ja konfiguratsiooni ning kuuluvad sisselogimise taha või tootmiskeskkonnast täielikult eemaldada.

Composeri paketid on teine suur plokk. Iga sõltuvus toob kaasa oma koodi ja hooldamata paketid takistavad hiljem PHP-upgrade'e. composer audit näitab teadaolevaid turvauke, kuid ei asenda oma koodi kontrolli.

Mida Laraveli uuendus suudab ja mida mitte

Laraveli või üksikute pakettide uuendus sulgeb selle koodi teadaolevad vead. See ei paiga PHP-d, ei taaskäivita töötajaid, ei uuenda lekkinud APP_KEY-d ega eemalda faile kaustadest storage või public. Kas enne paika midagi juhtus, saab selgitada ainult logide, failide ja andmebaasi kontrolliga.

Juurutustoruga (deployment pipeline) meeskondadele kehtib: PHP uuendus kuulub ka ehituskeskkonda ja baastõmmistesse, muidu toob järgmine juurutus taas vana versiooni. Kontrollige lisaks, kas staging- või review-keskkonnad on avalikult kättesaadavad. Need töötavad sageli väärtusega APP_DEBUG=true ja päris andmetega ning jäävad turvauuenduste puhul kergesti märkamata.

Kuidas PHP SOS konkreetselt aitab?

  • Kontrollime teie Laravel rakenduse veebi-, CLI- ja töötaja-PHP-d ning toetame kõigi protsesside korrapärast taaskäivitust.
  • Varundame logid alates 20.10.2026, andmebaasi ja koodiseisu ning võrdleme seda teie hoidlaga.
  • Kontrollime .env, konfiguratsiooni vahemälu, storage, public, admin-kontosid ja API märke.
  • Oma koodi põhjalikumaks kontrolliks vahendame spetsialiseerunud partnerite kaudu turvaauditi või penetratsioonitesti.

Korduma kippuvad küsimused

Kas pean Laraveli PHP2Shelli tõttu uuendama?

Laraveli uuendus ei sulge PHP2Shelli, sest turvaauk asub PHP interpretaatoris. Hoidke Laravel siiski ajakohasena. PHP2Shelli jaoks vajate paigatud PHP-d ja kõigi PHP protsesside, ka töötajate, taaskäivitust.

Miks ei piisa Laraveli puhul sageli PHP-FPM-i taaskäivitusest?

Queue-töötajad, Horizon, Octane ja ajastaja töötavad omaette PHP protsessidena käsurealt. Nad laadivad PHP ühe korra käivitamisel ja töötavad seejärel mälus oleva vana versiooniga edasi, kuni need taaskäivitatakse.

Mida teha, kui fail .env võis lekkida?

Siis peaksite uuendama APP_KEY, andmebaasi parooli ja kõik välisteenuste võtmed. Arvestage, et uus APP_KEY lõpetab olemasolevad sessioonid ja muudab vana võtmega krüpteeritud andmed loetamatuks; planeerige see oma arendajatega.

Allikad

Kohene kontakt

Iga tund loeb. Kirjutage meile kohe.

Kirjeldage lühidalt süsteemi, PHP versiooni ja tähelepanekut. Võtame teiega ühendust, selgitame olukorra välja ja töötame kaugtööna, kuni intsident on lõpetatud ja dokumenteeritud.

Kohene abi