PHP2Shell: cum verifici dacă sistemele PHP sunt vulnerabile și ce trebuie să faci

Echipa noastră SOC te ghidează pas cu pas

PHP2Shell: cum verifici dacă sistemele PHP sunt vulnerabile și ce trebuie să faci
Pe scurt: ce s-a intâmplat si ce trebuie sa faci

Două vulnerabilități critice, CVE-2026-109618 și CVE-2026-109619 (CVSS v4.0: 9.2, scor PHP), afectează runtime-ul PHP și pot permite executarea de cod de la distanță fără autentificare. PHP a publicat remedieri pe 21 octombrie 2026: 8.2.35, 8.3.36, 8.4.27 și 8.5.12. O a treia vulnerabilitate, CVE-2026-115560, anunțată pe 23 octombrie, rămâne necorectată în aceste versiuni și are condiții de exploatare specifice.

Prioritatea este să identifici versiunea PHP care procesează efectiv traficul web, să aplici versiunea corectată și să repornești sau să reîncarci procesele PHP. Verificarea doar cu php -v nu este suficientă: CLI, PHP-FPM și modulul PHP din Apache pot folosi versiuni diferite. Include în inventar containerele, mediile de test și produsele care includ PHP. În paralel, verifică semnele de exploatare: procese web care pornesc shell-uri, cereri multipart suspecte, crash-uri ale workerilor și fișiere PHP noi în directoare de upload.

Pe scurt: ce s-a intâmplat si ce trebuie sa faci

De ce contează

Potrivit W3Techs, PHP era utilizat de 69,2% dintre site-urile pentru care limbajul server-side este cunoscut, la 21 octombrie 2026  statistică folosită de Hadrian în analiza PHP2Shell pentru a ilustra amploarea potențială a expunerii. Procentul nu înseamnă că 69,2% dintre site-uri sunt vulnerabile; expunerea reală depinde de versiunea instalată, pachetele distribuitorului și configurația sistemului.

Expunerea nu este doar teoretică. Wiz Research a demonstrat execuție de cod neautentificată pe imaginile de container oficiale curente pentru WordPress, Drupal și Joomla. Instalările CMS standard sunt deci ținte directe, fără să fie nevoie de o configurație specială.

Ce știm despre exploatare la 27 octombrie

Amazon Threat Intelligence a observat o tentativă în honeypoturile MadPot pe 17 octombrie, înainte de publicarea vulnerabilităților și a patch-urilor. De aceea, verificarea retroactivă a logurilor trebuie să înceapă de la 17.10.2026. Ulterior au fost raportate scanări și tentative de exploatare, iar PoC-uri au devenit publice.

Pe 24 octombrie a apărut prima confirmare publică de calitate a unei exploatări reușite: Adel Karimi, detection & response lead la Perplexity, a înregistrat în honeypot-urile sale 35 de shell-uri lansate de la două adrese IP, pe Apache mod_php cu PHP 8.4.26, printr-un lanț HTTP în patru etape care se potrivea cu un PoC public. Dovada a inclus un dump de memorie de 800 KiB, de unde Karimi a concluzionat „confirmed RCE with usable memory disclosure”. Constatarea a fost validată independent de Marcus Hutchins (Expel), drept „cea mai bună confirmare de exploatare in-the-wild de până acum”. Karimi a subliniat însă că testul a rulat pe un profil mod_php cu un singur worker, ales intenționat favorabil, și nu măsoară fiabilitatea pe alte configurații, build-uri sau aplicații.

Pe 26 octombrie, CISA a adăugat ambele CVE-uri în catalogul Known Exploited Vulnerabilities (KEV), cu termen de remediere pentru agențiile federale americane 29 octombrie. Separat, CYFIRMA a raportat, cu încredere moderată, o campanie de scanare și sondare atribuită ecosistemului Lazarus, vizând 216 gazde PHP neactualizate sau parțial atenuate, activitate de probing, nu exploatare confirmată.


Partea tehnica: identificarea si remedierea sistemelor vulnerabile
1. Inventariază toate locurile în care rulează PHP

•   Verifică CMDB, scanerele de vulnerabilități, configurațiile serverelor, repository-urile și imaginile de containere.

•   Include VM-uri, App Service, Kubernetes, containere, medii de staging/test, aplicații on-premises și produse/appliance-uri terțe care includ PHP.

•   Prioritizează sistemele expuse direct la internet, în special cele care rulează Apache mod_php, precum și aplicațiile care acceptă upload-uri.

•   Folosește antetul X-Powered-By sau fingerprinting-ul extern doar ca indicii. Acestea nu confirmă versiunea reală a runtime-ului.

2. Verifică versiunea care deservește traficul web

Nu te baza doar pe versiunea CLI. Versiunea afișată de php -v poate diferi de cea a PHP-FPM sau a modulului Apache. Verifică-le separat (adaptează numele binarelor și serviciilor distribuției):

Pentru pachetele furnizate de distribuții Linux, verifică dacă există un backport al patch-ului. Un număr de versiune aparent mai vechi nu demonstrează automat că pachetul este vulnerabil; consultă changelog-ul și advisory-ul distribuției.

3. Stabilește modul de rulare (SAPI) — nivelul de risc diferă

Riscul nu este același pentru toate instalările. Tabelul rezumă ce a fost confirmat de cercetători și ce rezultă din analiza codului. Dacă mod_php este încărcat și servește aplicații publice, sistemul intră în categoria de risc foarte ridicat.

4. Aplică patch-ul și confirmă că rulează codul actualizat

Actualizează la versiunea corectată corespunzătoare ramurii. Apoi repornește sau reîncarcă serviciile PHP-FPM/Apache și workerii relevanți, conform procedurilor operaționale. Verifică din nou versiunea prin calea folosită de aplicația web. Actualizarea pachetului fără repornirea proceselor poate lăsa workerii existenți să ruleze în continuare codul vulnerabil.

Pentru PHP 8.1 și versiunile mai vechi, verifică dacă distribuitorul oferă patch-uri backportate și documentate. Dacă nu există o remediere suportată, planifică migrarea. Rebuild-uiește imaginile de containere din imagini de bază actualizate și redeployează-le; actualizarea hostului nu actualizează PHP din container.

5. Verifică suprascrierile INI per-cerere (consumator pentru CVE-2026-109619)

Avertismentele generate la aplicarea setărilor INI per-director pot acționa drept „consumator” în lanțul CVE-2026-109619. Caută directive php_value / php_flag / php_admin_* în .htaccess și în configurația Apache, respectiv PHP_VALUE / PHP_ADMIN_VALUE trimise de nginx către FPM. Dezactivarea afișării erorilor nu protejează, deoarece starea globală este accesată înainte ca PHP să decidă dacă afișează mesajul. Mută configurația în php.ini sau în pool-ul FPM.

6. Atenuează temporar CVE-2026-115560

CVE-2026-115560 este un vector separat, anunțat pe 23 octombrie și încă necorectat la 27 octombrie - PHP urmează să publice advisory-ul complet, cu versiunile afectate și scorul CVSS, odată cu următorul release, fără o dată anunțată. Potrivit informării PHP, riscul apare numai dacă sunt îndeplinite simultan trei condiții:

1.  session.serialize_handler este php_binary sau php_serialize;

2.  aplicația schimbă handlerul în php prin ini_set() înainte de session_start(); și

3.  session.upload_progress.enabled rămâne activat.

Aplicațiile care nu schimbă handlerul de sesiune la runtime nu sunt expuse prin acest vector specific. Măsură temporară: setează session.upload_progress.enabled=0 în php.ini sau .user.ini, ori prin configurația pool-ului PHP-FPM. Testează efectul asupra funcționalității de upload, apoi reîncarcă serviciile și confirmă setarea efectivă. Această măsură nu înlocuiește patch-urile pentru CVE-2026-109618 și CVE-2026-109619.

7. Măsuri compensatorii și limitele lor

Dacă nu poți aplica imediat patch-ul, evaluează izolarea temporară a sistemului expus și controalele de reducere a traficului multipart. Orice modificare trebuie aprobată, testată și monitorizată. Regulile WAF pot reduce unele tentative, dar nu repară runtime-ul și au eficiență limitată împotriva cererilor formal valide.

Nu considera drept remediere:

•   ascunderea erorilor (display_errors=Off, error_reporting, log_errors=Off sau operatorul@) - atacul se produce înainte de execuția aplicației;

•   modul de mentenanță al unui CMS;

•   regulile WAF bazate pe semnături de payload (cererile malițioase sunt formal valide).

Lipsa erorilor în loguri nu dovedește că sistemul nu a fost vizat. Nu testa sistemele de producție cu PoC-uri publice: multe sunt nefiabile, unele pot conține cod nesigur, iar un rezultat negativ nu dovedește că serverul nu este vulnerabil.

Detecție și răspuns

În paralel cu patching-ul, SOC recomandă o verificare retroactivă a sistemelor expuse cel puțin din 17.10.2026, în măsura în care există telemetrie. Corelați accesările suspecte cu executarea de procese, schimbări de fișiere, conexiuni outbound și evenimente de autentificare. Absența telemetriei sau a alertelor nu demonstrează că exploatarea nu a avut loc.

1. Telemetrie de proces / EDR

Alertați la orice proces lansat de php-fpm, php-cgi, httpd sau apache2 care pornește un shell ori unelte de descărcare (sh, bash, dash, curl, wget, nc, python, perl). În funcționare normală, acest comportament este rar și trebuie tratat ca posibilă compromitere.

2. Loguri web și PHP

•   Rafale de cereri POST multipart/form-data de la aceeași sursă, mai ales cu un număr neobișnuit de părți sau antete.

•   Câmpuri cu nume puternic imbricate ori cereri care includ PHP_SESSION_UPLOAD_PROGRESS, inclusiv către endpoint-uri care nu ar trebui să accepte upload.

•   Răspunsuri HTTP 500 repetate, crash-uri sau restartări neașteptate ale workerilor PHP.

•   Cookie-uri PHPSESSID malformate sau neobișnuit de lungi și erori repetate (SIGSEGV, AH00052, zend_mm_heap corrupted)

3. Sistem de fișiere și persistență

•   Fișiere PHP nou apărute sau modificate în directoare de upload, cache ori accesibile web-ului; verifică timestamp, proprietar și conținut.

•   Sarcini cron noi pentru utilizatorul serverului web, chei SSH sau conturi adăugate recent; conexiuni outbound neobișnuite inițiate de workerii web.

4. Cum folosești indicatorii de compromitere (IOC)

Tratează IOC-urile ca puncte de pornire pentru corelare, nu ca dovadă autonomă: unele adrese pot aparține infrastructurii de anonimizare sau pot apărea în trafic legitim. O potrivire nu confirmă compromiterea și nu justifică blocarea automată. Validează sursa, data și contextul fiecărui indicator, comparându-l cu telemetria host/network.

Răspuns la incident: dacă există indicii credibile de compromitere

1.  Izolează sistemul afectat și limitează accesul de rețea fără a distruge probele.

2.  Păstrează logurile și, unde este posibil, o imagine a discului și artefactele de memorie/proces.

3.  Rotește toate credențialele accesibile procesului web: parole de baze de date, chei API, token-uri și secrete din .env.

4.  Continuă investigația pentru persistență, exfiltrare și acces lateral. Actualizarea PHP singură nu elimină accesul unui atacator dacă sistemul a fost deja compromis.

5.  Escaladează către echipa SOC/IR și evaluează obligațiile de notificare aplicabile (GDPR, NIS2).


Tabele de referință

Versiuni afectate și versiuni corectate

Tabele de referință

Cele două CVE-uri corectate, comparativ

Plan de acțiune recomandat

Surse și referințe


[1]  PHP Security Advisory — GHSA-w8hw-w9fx-j79w (CVE-2026-109618) — https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w

[2]  PHP Security Advisory — GHSA-6wmf-4rv5-p3rp (CVE-2026-109619) — https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp

[3]  PHP official notice — Session upload progress (CVE-2026-115560), 23.10 — https://www.php.net/archive/2026.php#2026-10-23-1

[4]  Amazon Threat Intelligence — observații MadPot, 17–21.10.2026 — https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/

[5]  Cloudflare — PHP2Shell: mitigări WAF și limitele lor — https://blog.cloudflare.com/php-vulnerabilities-waf-protection/

[6]  CISA — Critical Vulnerabilities in PHP Require Immediate Patching — https://content.govdelivery.com/accounts/USDHSCISA/bulletins/42ff5ac

[7]  VulnCheck — exploit research update, 23.10.2026 — https://www.vulncheck.com/blog/php2shell-vulnerabilities

[8]  Wiz Research — PHP2Shell technical disclosure (RCE pe containere CMS) — https://www.wiz.io/blog/php2shell-php-rce

[9]  Censys — PHP2Shell services (date dinamice, orientative) — https://php2shell.censys.com/

[10]       Red Hat — RHSB-2026-013 (pachete/distribuții) — https://access.redhat.com/security/vulnerabilities/RHSB-2026-013

[11]       AWS Security Blog — WAF mitigating controls, 21.10.2026 — https://aws.amazon.com/blogs/security/using-aws-waf-to-apply-mitigations-for-php2shell-rce-vulnerabilities-cve-2026-109618-and-cve-2026-109619/

[12]       Recorded Future News — tentative de exploatare și corecții (inclusiv revizuirea Sophos) — https://therecord.media/php-php2shell-exploitation-attempts-pocs

[13]       Unit 42 / Palo Alto Networks — Threat Brief PHP2Shell (actualizat, retragerea asocierii) — https://unit42.paloaltonetworks.com/cve-2026-109618-cve-2026-109619/

[14]       SecurityWeek — PHP2Shell Exploitation Moves From Probes to Working Shells (35 de shell-uri în honeypot) — https://www.securityweek.com/php2shell-exploitation-moves-from-probes-to-working-shells/

[15]       securityonline.info — PHP2Shell adăugat în CISA KEV; campanie de probing atribuită Lazarus (CYFIRMA) — https://securityonline.info/php2shell-cisa-kev-confirmed-rce-dprk/

[16]       The Hacker News — liste IOC Wordfence și botnet Potassium (sursă secundară) — https://thehackernews.com/2026/10/php2shell-exploit-attempts-hit-millions.html

[17]       SOCRadar — raport exploatare / infrastructură observată — https://socradar.io/blog/php2shell-cve-2026-109618-cve-2026-109619/

[18]       W3Techs — Usage statistics and market share of PHP (statistică 21.10.2026) — https://w3techs.com/technologies/details/pl-php

[19]       BleepingComputer — PHP2Shell security flaws now successfully exploited in the wild (RCE în honeypot, 26.10) — https://www.bleepingcomputer.com/news/security/php2shell-security-flaws-now-sucessfully-exploited-in-the-wild/

Cloud image

30 de zile de apărare cibernetică la nivel de întreprindere

Pășiți în viitorul securității cibernetice cu acces complet la o platformă unificată și inteligentă — gratuit timp de 30 de zile. Îmbunătățiți echipa de securitate cu:

  • SIEM avansat pentru vizibilitate în timp real, alerte inteligente și analize criminalistice aprofundate în medii cloud, on-prem și hibride

  • Management continuu al vulnerabilităților pentru a identifica, prioritiza și remedia riscurile pentru toate activele

  • Informații live despre amenințările cibernetice integrate direct în fluxurile dvs. de lucru, cu informații globale și profilarea atacatorilor

  • Detectarea amenințărilor bazată pe inteligență artificială, care învață din mediul dvs., explică alertele într-un limbaj simplu și sugerează pașii următori

  • Pregătire de conformitate încorporată pentru NIS2, GDPR, ISO 27001 și multe altele, cu instrumente automate de raportare și audit

Indiferent dacă gestionați un SOC eficient sau o echipă de securitate la scară largă, această platformă vă oferă instrumentele necesare pentru a detecta mai rapid, a răspunde mai inteligent și a fi cu un pas înaintea amenințărilor în evoluție — toate acestea fără complexitate.

Experimentați protecție la nivel de întreprindere, fluxuri de lucru simplificate și control total.

Avantajul tău de 30 de zile începe acum.

Deblocheaza perioada de proba gratuita de 30 de zile