Skip to content

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.

Alarm sigurie për dobësi kritike në PHP: përditësoni në versionet e rregulluara

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.ini ose te pool-i i FPM (jo me ini_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_size të ulët (8M nëse nuk keni ngarkime skedarësh, 32M nëse keni) dhe mbajeni upload_max_filesize më poshtë.
  • Në PHP 8.5, vendosni edhe fatal_error_backtraces = 0.
  • Ekipi i PHP përshkruan edhe një masë me memory_limit pë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.

Share
Working on something similar?

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

Leave a Reply

Your email address will not be published. Required fields are marked *