Aktuālā situācija: PHP2Shell. Divas kritiskas PHP ievainojamības (CVSS 9.2) ļauj izpildīt ļaunprātīgu kodu bez pieteikšanās. Ielāpi kopš 21.10.2026.Kas jādara tagad →

CVE-2026-115560: norāde par session upload progress

CVE-2026-115560 ir php.net norāde no 23.10.2026: iespējama koda izpilde tikai neparastā sesiju konfigurācijā. Pretlīdzeklis līdz nākamajam izlaidumam: session.upload_progress.enabled=0.

Aktuāls uz 4 min lasīšanas laiksPHP2Shell

Īsi: CVE-2026-115560 ir norāde, ko php.net publicēja 2026. gada 23. oktobrī. Saskaņā ar to koda izpilde no attāluma ir iespējama tikai neparastā sesiju konfigurācijā. Līdz nākamajam regulārajam kļūdu labojumu izlaidumam pretlīdzeklis ir: servera pusē iestatīt session.upload_progress.enabled=0 un pārstartēt visus darbprocesus.

Kas ir CVE-2026-115560?

Divas dienas pēc ielāpiem PHP2Shell ievainojamībām CVE-2026-109618 un CVE-2026-109619 PHP projekts publicēja vēl vienu norādi. CVE-2026-115560 attiecas uz PHP sesiju apstrādi saistībā ar funkciju session upload progress, kas notiekošo failu augšupielāžu progresu glabā sesijā.

Saskaņā ar php.net ļaunprātīga koda izpilde no attāluma ir iespējama, bet tikai neparastā konfigurācijā. Pilnais advisory ar visām detaļām sekos ar nākamo regulāro kļūdu labojumu izlaidumu. Līdz tam zināšanu līmenis ir apzināti šaurs.

Ko dara session upload progress?

Session upload progress ir PHP ērtības funkcija. Ja apmeklētājs augšupielādē lielāku failu, PHP augšupielādes laikā nepārtraukti ieraksta sesijā datus par progresu: cik daudz datu jau ir saņemts un kurš fails pašlaik tiek pārsūtīts. Lietojumprogramma šos datus paralēli var pieprasīt un no tiem izveidot progresa joslu.

Praksē to izmanto tikai dažas lietojumprogrammas, jo mūsdienu augšupielādes veidlapas progresu parasti mēra tieši pārlūkprogrammā. Taču PHP šī funkcija pēc noklusējuma ir ieslēgta. Tāpēc tā parādās gan CVE-2026-115560, gan pagaidu pasākumos pret PHP2Shell: kas nav vajadzīgs, tam jābūt izslēgtam.

Kad serveris ir CVE-2026-115560 skarts?

Saskaņā ar php.net norādi jāsakrīt trim nosacījumiem:

  1. Konfigurācijā kā session.serialize_handler ir ierakstīta vērtība php_binary vai php_serialize.
  2. Lietojumprogramma izpildes laikā ar ini_set() pārslēdz šo vērtību uz php, pirms izsauc session_start().
  3. Session upload progress ir aktīvs.

session.serialize_handler noklusējuma vērtība ir php. Pārslēgšana konfigurācijā un atpakaļ iestatīšana kodā ir neparasta, taču sastopama izaugušos pašu izstrādātos risinājumos vai bibliotēkās ar savu sesiju apstrādi. Vai tas attiecas uz jums, var pārbaudīt.

Kā pārbaudīt savu konfigurāciju

Vispirms spēkā esošās vērtības. CLI var lasīt citu php.ini nekā PHP-FPM vai mod_php; tāpēc pārbaudiet arī tīmekļa servera vai FPM pūla konfigurāciju.

php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null   # ceļš atkarībā no distributīva atšķiras

Pēc tam lietojumprogrammas kods. Šāds meklējums ir tikai lasošs un parāda vietas, kur apstrādātājs tiek iestatīts izpildes laikā:

grep -rn "session.serialize_handler" /var/www/ --include="*.php"

Ja meklējums neko neatrod un apstrādātājs konfigurācijā ir iestatīts uz php, aprakstītā kombinācija ir maz ticama. Session upload progress tomēr vajadzētu izslēgt, jo php.net to pašu iestatījumu min arī kā pagaidu pasākumu pret PHP2Shell.

Pretlīdzeklis: session.upload_progress.enabled=0

Iestatiet vērtību php.ini, FPM pūlā vai servera konfigurācijā. Saskaņā ar php.net tieši ne ar ini_set() vai .user.ini, jo tur tā stājas spēkā par vēlu vai lietojumprogramma to var pārrakstīt.

; php.ini (visiem pūliem un SAPI, kas lasa šo failu)
session.upload_progress.enabled = 0

; vai FPM pūlā
php_admin_flag[session.upload_progress.enabled] = off
# Apache ar mod_php, VirtualHost vai servera konfigurācijā
php_admin_flag session.upload_progress.enabled off

Pēc tam pārstartējiet visus PHP darbprocesus, piemēram, systemctl restart php8.3-fpm vai mod_php gadījumā Apache. Pakotņu un pakalpojumu nosaukumi atšķiras pa distributīviem. Bez pārstartēšanas turpina darboties vecais iestatījums. Vairāk lasiet rakstā PHP-FPM un visu darbprocesu pārstartēšana.

Padoms

Pēc pārstartēšanas pārbaudiet, vai iestatījums tiešām darbojas: tīmekļa kontekstā, ne tikai komandrindā. Īslaicīgi izveidota, ar piekļuves aizsardzību nodrošināta phpinfo lapa parāda spēkā esošo vērtību; pēc tam to nekavējoties izdzēsiet.

Vērtējums līdzās PHP2Shell

CVE-2026-115560 ir ievērojami šaurāka nekā abas PHP2Shell ievainojamības, kas ierastajos darbības režīmos darbojas bez īpašas konfigurācijas. Kam tagad jāprioritizē, tam vispirms jāinstalē PHP2Shell atjauninājums un pēc tam jāiestata session.upload_progress.enabled=0. Abus kopā var paveikt vienā apkopes logā.

Vadībai un cilvēkiem, kas nav tehniķi: CVE-2026-115560 nav iemesls satraukumam, bet ir punkts sarakstā. Iestatījumu ātri iestata, tas gandrīz nevienai lietojumprogrammai nav jūtams un vienlaikus aptver vienu no pagaidu pasākumiem pret PHP2Shell. Pārējie php.net pagaidu pasākumi ir lapā Tūlītēji pasākumi, ja vēl nevarat ielāpot, vispārīgas norādes par sesiju konfigurāciju sadaļā Sesiju nodrošināšana PHP.

Ko mēs vēl nezinām: kuras PHP versijas precīzi ir skartas un kurš izlaidums nesīs labojumu. Mēs šo lapu atjaunināsim, tiklīdz parādīsies advisory.

Kā PHP SOS palīdz konkrēti?

Ietvaros servera nostiprināšanai mēs pretlīdzekli ieviešam pastāvīgi un pārbaudāmi:

  • Nolasīt konfigurāciju: spēkā esošās sesiju vērtības katram SAPI, pūlam un virtuālajam hostam.
  • Pārmeklēt kodu: vietas, kur apstrādātājs vai sesiju opcijas tiek mainītas izpildes laikā.
  • Izslēgt pareizajā vietā: php.ini, pūlā vai servera konfigurācijā, lietojumprogrammai nepārrakstāmi, ar sekojošu pārstartēšanu.
  • Sekot līdzi: kad parādīsies kļūdu labojumu izlaidums, mēs to instalēsim un dokumentēsim stāvokli.

Biežāk uzdotie jautājumi

Vai CVE-2026-115560 ir PHP2Shell daļa?

Paziņojums parādījās divas dienas pēc PHP2Shell ielāpiem un arī attiecas uz pašu PHP. Taču tā ir atsevišķa ievainojamība ar savu CVE numuru, un tā darbojas tikai noteiktā, neparastā konfigurācijā. PHP2Shell atjauninājumi no 21. oktobra to pēc līdzšinējā stāvokļa nenovērš.

Vai pret CVE-2026-115560 jau ir atjauninājums?

Pēc stāvokļa uz 25.10.2026 nē. php.net paziņo, ka pilnais advisory sekos ar nākamo regulāro kļūdu labojumu izlaidumu. Līdz tam ieteicamais pretlīdzeklis ir session.upload_progress.enabled=0.

Kas pārstāj darboties, ja izslēdzu session upload progress?

Funkcija ziņo lietojumprogrammai par notiekošo failu augšupielāžu progresu. Tikai lietojumprogrammas, kas šādu progresa joslu realizē ar šo PHP funkciju, zaudē rādījumu. Pati augšupielāde darbojas tālāk.

Avoti

Tūlītējs kontakts

Katra stunda ir svarīga. Rakstiet mums tūlīt.

Īsi aprakstiet sistēmu, PHP versiju un novēroto. Mēs sazināsimies, noskaidrosim situāciju un strādāsim attālināti, līdz incidents ir slēgts un dokumentēts.

Tūlītēja palīdzība