PHP2Shell: dobësi kritike në PHP (CVE-2026-109618/109619) dhe si t’i rregulloni
Dy dobësi kritike në PHP lejojnë sulmuesit të ekzekutojnë kod në serverë pa u identifikuar, dhe kodi i sulmit është tashmë publik. Ja kush preket, cilat versione i rregullojnë dhe si ta kontrolloni e ta përditësoni serverin sot.
Më 21 tetor 2026, projekti PHP publikoi përditësime emergjente për dy dobësi kritike në PHP që i lejojnë një sulmuesi të ekzekutojë kodin e vet në një server web pa u identifikuar fare. Studiuesit e sigurisë i kanë quajtur “PHP2Shell”. Detajet dolën para kohe, dhe brenda pak orësh në internet u publikua kod sulmi që funksionon. Pra, kjo rregullohet sot, jo javën tjetër.
Nëse faqja, dyqani online ose aplikacioni juaj punon me PHP (WordPress, WooCommerce, Laravel, Magento, Drupal, Joomla dhe shumica e aplikacioneve me porosi), këto dobësi ju prekin edhe juve.
Çfarë ndodhi
Ekipi i sigurisë së PHP publikoi dy dobësi, secila e vlerësuar 9.2 nga 10 (CVSS v4.0):
- CVE-2026-109618: ekzekutim kodi në distancë përmes korrupsionit të memories. Kur PHP mbetet pa memorie në momentin e gabuar, të dhënat e brendshme të kërkesës mund të mbeten gjysmë të inicializuara, dhe kodi i pastrimit i trajton si të vlefshme.
- CVE-2026-109619: ekzekutim kodi në distancë përmes gjendjes së mbetur globale. Gjendja e brendshme e një kërkese mund të mbijetojë pasi memoria e saj është liruar, dhe një kërkesë e mëvonshme në të njëjtin proces mund ta përdorë atë.
Sipas ekipit të PHP, në rrezik është çdo instalim që shërben kërkesa web: PHP-FPM, Apache me mod_php, php-cgi, FrankenPHP dhe LiteSpeed. Rreziku më i madh është te Apache me mod_php, ku sulmi mund të ndodhë para se të ekzekutohet kodi i aplikacionit tuaj. Pra, asnjë plugin i WordPress apo middleware i Laravel nuk e ndal dot.
Agjencitë e sigurisë kibernetike të BE-së dhe të Mbretërisë së Bashkuar (CERT-EU dhe NCSC) dhanë alarm, duke këshilluar që sistemet publike që nuk përditësohen dot shpejt të nxirren offline derisa të rregullohen.
Cilat versione i rregullojnë dobësitë kritike në PHP
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35 (mbështetja për 8.2 mbaron më 31 dhjetor 2026, ndaj planifikoni kalimin)
PHP 8.1 dhe versionet më të vjetra nuk marrin më përditësime zyrtare. Ekipi i PHP publikoi rregullime minimale në kod burimor për 7.4, 8.0 dhe 8.1, dhe disa shpërndarje Linux ofrojnë paketat e tyre të rregulluara, por zgjidhja më e sigurt është kalimi në një version të mbështetur. Versionet e vjetra janë shembull tipik i borxhit teknik, dhe pikërisht tani kushton.
Hapi 1: Gjeni çdo instalim PHP
Shumica e incidenteve ndodhin te serveri që të gjithë e kanë harruar: një faqe e vjetër testimi, një subdomain prove, një imazh Docker që askush nuk e ka rindërtuar. Në çdo server Linux, ekzekutoni:
php -v
ls /etc/php/
systemctl list-units | grep -Ei 'php|apache|nginx'
Shënoni versionin dhe mënyrën si shërbehet PHP: një shërbim phpX.Y-fpm do të thotë PHP-FPM, ndërsa Apache pa shërbim FPM zakonisht do të thotë mod_php.
Hapi 2: Përditësoni
Ubuntu / Debian
sudo apt update
apt list --upgradable 2>/dev/null | grep -i php
sudo apt install --only-upgrade 'php8.4*' # vendosni versionin tuaj
sudo systemctl restart php8.4-fpm # ose: sudo systemctl restart apache2
E rëndësishme: nëse përdorni paketat PHP të vetë shpërndarjes (p.sh. PHP 8.3 në Ubuntu 24.04), numri i versionit shpesh mbetet i njëjtë edhe pas rregullimit, sepse shpërndarjet i fusin rregullimet në versionin ekzistues. php -v mund të shkruajë ende 8.3.6 edhe pse jeni të sigurt. Kontrolloni regjistrin e ndryshimeve të paketës:
zcat /usr/share/doc/php8.3-common/changelog.Debian.gz | head -20
Kërkoni CVE-2026-109618 dhe CVE-2026-109619 te hyrja e fundit.
Nëse përdorni një repo të palës së tretë (si PPA-ja e njohur e Ondřej Surý), numri i versionit ndryshon, ndaj php -v duhet të tregojë një nga versionet e rregulluara më sipër. Paketat për shpërndarje të ndryshme mund të dalin me disa orë diferencë. Nëse ende nuk shfaqet përditësim, aplikoni masat e përkohshme më poshtë dhe kontrolloni sërish më vonë.
Docker
Tërhiqni versionin e rregulluar të imazhit zyrtar, rindërtoni imazhet dhe publikoni sërish. Rinisja e një kontejneri të vjetër nuk e rregullon.
Hosting i përbashkët dhe panele kontrolli
Në panelin e hostingut (cPanel, Plesk, hPanel etj.), kaloni faqen në versionin më të ri të PHP që ofrohet dhe konfirmoni me ofruesin që përfshin rregullimet e 21 tetorit. Nëse faqja është ende në PHP 7.x ose 8.0/8.1, tani është momenti për ta kaluar.
Hapi 3: Rinisni dhe verifikoni
Rregullimi hyn në fuqi vetëm pasi PHP rinis. Rinisni PHP-FPM ose Apache, pastaj sigurohuni që shërbimi ka nisur pas instalimit të përditësimit:
systemctl show php8.4-fpm -p ActiveEnterTimestamp # ose apache2
Nuk përditësoni dot tani? Ulni rrezikun
Ekipi i PHP është i qartë: vetëm përditësimi e zgjidh plotësisht problemin. Këto cilësime mbyllin rrugë të njohura sulmi, por nuk e bëjnë serverin të sigurt:
- Çaktivizoni “session upload progress” te
php.iniose te pool-i i FPM (jo meini_set()apo.user.ini), pastaj rinisni të gjitha proceset:session.upload_progress.enabled = 0
Shumica e aplikacioneve moderne, përfshirë Laravel dhe WordPress, nuk e përdorin këtë funksion, ndaj zakonisht mund ta lini të fikur përgjithmonë. - Mbajini kërkesat të vogla. Vendosni një
post_max_sizetë ulët (8M nëse nuk keni ngarkime skedarësh, 32M nëse keni) dhe mbajeniupload_max_filesizemë poshtë. - Në PHP 8.5, vendosni edhe
fatal_error_backtraces = 0. - Ekipi i PHP përshkruan edhe një masë me
memory_limitpër dobësinë e parë. Lexoni njoftimin e tyre para se ta aplikoni, sepse ndryshon sjelljen e gabimeve të memories. - Nëse një faqe publike nuk mund të përditësohet apo mbrohet, merrni në konsideratë ta nxirrni offline përkohësisht.
Hapi 4: Kontrolloni nëse jeni sulmuar tashmë
Meqë kodi i sulmit u bë publik para se shumë serverë të përditësoheshin, ia vlen një kontroll i shpejtë:
sudo find /var/www -name '*.php' -newermt '2026-10-18' \
-not -path '*/vendor/*' -not -path '*/storage/framework/*'
Çdo skedar PHP që nuk e keni vendosur vetë, sidomos në dosjet e ngarkimeve, është shenjë alarmi. Kontrolloni edhe regjistrat e aksesit për kërkesa POST të çuditshme dhe përdorues administratorë të panjohur në CMS. Nëse gjeni diçka, një kopje rezervë e testuar është ajo që ju lejon të riktheheni shpejt.
Lista e shpejtë
- Listoni çdo server, kontejner dhe llogari hostingu ku punon PHP
- Përditësoni në 8.5.12, 8.4.27, 8.3.36 ose 8.2.35, ose në paketën e rregulluar të shpërndarjes
- Rinisni PHP-FPM / Apache dhe verifikoni
- Aplikoni cilësimet e përkohshme kudo ku përditësimi nuk ka dalë ende
- Planifikoni kalimin për çdo gjë në PHP 8.1 ose më të vjetër
- Kërkoni shenja ndërhyrjeje
Keni disa serverë apo aplikacione dhe nuk dini nga t’ia nisni? Na kontaktoni dhe ju ndihmojmë t’i kontrolloni e t’i përditësoni.
Burimet: Njoftimi i sigurisë nga PHP, Njoftimi CERT-EU 2026-018, Cybernews.
I take on a small number of projects at a time. Tell me what you are building and I will tell you honestly whether I am the right person for it.
Get in touch →
1 comment