# Kif tassiguraw Nginx b'PHP-FPM

> Sigurtà ta' Nginx PHP-FPM wara PHP2Shell: ivverifikaw il-pools u l-verżjonijiet, erġgħu ibdew il-workers, issettjaw valuri b'php_admin_value u saħħu Nginx.

Sors: https://phpsos.de/mt/server/nginx-php-fpm/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**Fil-qosor:** F'Nginx b'PHP-FPM, il-vulnerabbiltà ta' PHP2Shell tinsab f'PHP-FPM, mhux f'Nginx. Ippatchjaw il-verżjonijiet kollha ta' PHP-FPM, erġgħu ibdew kull servizz FPM kompletament u pruvaw dan bil-ħinijiet tal-bidu tal-proċessi. Għas-sigurtà ta' Nginx PHP-FPM fit-tul jgħoddu pools separati, valuri li ma jistgħux jiġu sostitwiti u konfigurazzjoni ta' Nginx li ma teżegwixxix fajls li jkunu tellgħu l-utenti.

## Kif jaħdmu flimkien Nginx u PHP-FPM

Nginx iservi huwa stess il-fajls statiċi u jgħaddi t-talbiet għal skripts ta' PHP lil PHP-FPM permezz ta' FastCGI. PHP-FPM jikkonsisti minn proċess master u diversi proċessi worker, miġbura f'pools. Worker jittratta ħafna talbiet wara xulxin.

Preċiżament dan huwa rilevanti għal PHP2Shell. F'CVE-2026-109619, stat intern ta' talba jista' jibqa' wara li l-memorja tiġi meħlusa u jintuża minn talba aktar tard fl-istess worker. F'CVE-2026-109618, stat ta' out-of-memory jista' jwaqqaf lil PHP f'nofs l-inizjalizzazzjoni ta' talba. Iż-żewġ vulnerabbiltajiet huma evalwati b'CVSS v4.0 9,2 u rranġati f'PHP 8.5.12, 8.4.27, 8.3.36 u 8.2.35.

## Nivverifikaw l-inventarju: verżjonijiet, pools, proċessi

Ħafna servers għandhom diversi verżjonijiet ta' PHP-FPM flimkien. Il-kmandi li ġejjin jaqraw biss; l-ismijiet tal-pakketti u tas-servizzi huma eżempji għal Debian/Ubuntu u l-familja RHEL.

```bash
# Welche FPM-Dienste laufen?
systemctl list-units --type=service | grep -i fpm

# Welche Version steckt dahinter? (Beispiel Debian/Ubuntu)
php-fpm8.3 -v
# RHEL-Familie
php-fpm -v

# An welche Sockets oder Ports reicht Nginx weiter?
nginx -T 2>/dev/null | grep -E 'fastcgi_pass'

# Pools und ihre Benutzer
grep -RhE '^\[|^user|^listen' /etc/php/*/fpm/pool.d/ 2>/dev/null
```

Qabblu kull daħla `fastcgi_pass` ma' pool li jaħdem. B'hekk tarau liema verżjoni ta' PHP jaqdi liema websajt. Fil-każ ta' pakketti tad-distribuzzjoni, il-changelog bin-numri tas-CVE jippruva l-patch, mhux in-numru tal-verżjoni waħdu.

Sejba frekwenti f'inventarji bħal dawn huma servers fejn matul is-snin ġew installati diversi verżjonijiet ta' PHP, li minnhom waħda biss hija verament użata. Is-servizzi l-oħra ta' FPM jibqgħu jaħdmu xorta, spiss b'pools standard li jisimgħu fuq socket jew port lokali. Minn barra ġeneralment ma jintlaħqux direttament, imma jibqgħu riskju bla bżonn u jtawlu kull aġġornament ta' emerġenza. Iddiżattivaw u neħħu verżjonijiet li ebda websajt ma tuża, wara li tkunu vverifikaw l-assenjazzjoni permezz tad-daħliet `fastcgi_pass`.

Jiswa wkoll li tħarsu lejn l-utent tal-pools. Jekk il-pools kollha jaħdmu bħala `www-data` jew `nginx`, is-separazzjoni bejn il-websajts teżisti biss fuq il-karta. Min jieħu websajt f'idejh jista' mbagħad jaqra l-fajls tal-oħrajn, pereżempju fajls tal-konfigurazzjoni bil-passwords tad-database. Utenti tas-sistema separati għal kull pool u drittijiet xierqa tal-fajls joħolqu hawn fruntiera vera. Din mhijiex rimedju għal PHP2Shell, imma tillimita b'mod sinifikanti d-dannu possibbli ta' attakk b'suċċess.

## Installaw il-patch u ġeddu l-workers kollha

Wara l-aġġornament tal-pakketti erġgħu ibdew kull servizz ta' PHP-FPM. Reload jissostitwixxi l-workers, imma restart sħiħ iġedded ukoll il-proċess master u huwa t-triq sigura wara aġġornamenti tas-sigurtà.

```bash
# Beispiel Debian/Ubuntu, je installierter Version
systemctl restart php8.3-fpm
# RHEL-Familie
systemctl restart php-fpm

# Kontrolle: Startzeit von Master und Workern
ps -eo pid,lstart,cmd | grep -E 'php-fpm' | grep -v grep
```

Kull proċess irid ikun beda wara l-aġġornament. Dan huwa deskritt fid-dettall f'[Erġa' ibdew PHP-FPM u l-workers kollha](https://phpsos.de/mt/php2shell/php-fpm-neustart/).

> **Importanti:**
> Patch ma jneħħix malware li tkun ġiet introdotta qabel. Żommu l-logs tal-aċċess u tal-iżbalji ta' Nginx mill-20/10/2026 'il quddiem u iċċekkjaw il-websajts għal traċċi.

## Nissettjaw valuri temporanji fil-pool

Sakemm verżjoni ma tkunx ippatchjata, php.net jirrakkomanda miżuri temporanji. Ma joffrux protezzjoni sħiħa. F'PHP-FPM tissettjaw il-valuri b'`php_admin_value` jew `php_admin_flag` fil-pool, u mbagħad l-applikazzjonijiet ma jistgħux jissostitwuhom permezz ta' `ini_set()`.

```ini
; Beispiel: /etc/php/8.3/fpm/pool.d/website.conf
php_admin_flag[session.upload_progress.enabled] = off
php_admin_value[post_max_size] = 32M
php_admin_value[upload_max_filesize] = 24M
```

Mingħajr funzjoni ta' upload, php.net jissuġġerixxi `post_max_size = 8M`. Fuq PHP 8.5 jiżdied `fatal_error_backtraces=0`. Għall-indikazzjoni dwar `memory_limit=-1` għandkom bżonn limitu tal-memorja fil-livell tal-cgroup, pereżempju permezz ta' `MemoryMax` f'estensjoni ta' systemd għas-servizz FPM. Fi Nginx adattaw `client_max_body_size` għall-`post_max_size` il-ġdid, biex l-utenti jirċievu messaġġi ta' żball li jinftiehmu. Wara erġgħu ibdew FPM.

## Nitjiebu s-sigurtà ta' Nginx PHP-FPM fit-tul

Lil hinn mill-każ akut jgħinu xi regoli bażiċi li jillimitaw id-dannu fil-vulnerabbiltajiet futuri:

- **Pool wieħed għal kull websajt** b'utent tas-sistema proprju, socket proprju u fruntiera `open_basedir` proprja. Aktar taħt [open_basedir u iżolament għal kull websajt](https://phpsos.de/mt/ratgeber/open-basedir/).
- **Drittijiet tas-socket** issettjawhom b'mod li jkun jista' jaċċessa biss Nginx, tiftħux ports ta' FPM lejn barra.
- **Eżegwixxu biss skripts eżistenti:** fil-location ta' PHP issettjaw `try_files $uri =404;`, biex Nginx ma jgħaddix lil PHP mogħdijiet li ma jeżistux.
- **Tħallux uploads jiġu eżegwiti:** f'direttorji tal-upload ipprojbixxu l-eżekuzzjoni ta' PHP. Noti dwar dan jinsabu f'[Kif timplimentaw uploads tal-fajls b'mod sigur](https://phpsos.de/mt/ratgeber/datei-upload-sicher/).
- **Ipproteġu l-paġni tal-istatus:** `pm.status_path` u `ping.path` agħmluhom aċċessibbli biss b'mod intern.

```nginx
# Beispiel: keine PHP-Ausführung im Upload-Verzeichnis
location ~* ^/uploads/.*\.php$ {
    deny all;
}
```

Iċċekkjaw kull bidla b'`nginx -t` qabel ma terġgħu tgħabbu lil Nginx. Innotaw ukoll liema pools, verżjonijiet u regoli speċjali jeżistu fuq is-server. Din id-dokumentazzjoni qasira tiffranka ħin prezzjuż fil-vulnerabbiltà kritika li jmiss, għax ħadd ma jrid ifittex l-ewwel liema websajt hija marbuta ma' liema pool.

## Kif tgħin PHP SOS b'mod konkret?

- Nassenjaw kull websajt għall-pool u għall-verżjoni ta' PHP tagħha u niċċekkjaw l-istat reali tal-pakketti.
- Nippatchjaw, nerġgħu nibdew is-servizzi FPM kollha u niddokumentaw il-ħinijiet tal-bidu tal-proċessi bħala prova.
- Sakemm jasal il-patch, nissettjaw il-valuri temporanji għal kull pool u nillimitaw il-memorja permezz tal-cgroup.
- Fil-qafas tat-[tisħiħ tas-server](https://phpsos.de/mt/leistungen/server-haertung/) nistabbilixxu sewwa l-pools, id-drittijiet u d-direttorji tal-upload.
- F'każ ta' suspett ta' dħul mhux awtorizzat nieħdu f'idejna l-[Incident Response](https://phpsos.de/mt/leistungen/incident-response/).


## Mistoqsijiet frekwenti

**Huwa biżżejjed systemctl reload għal PHP-FPM wara aġġornament?**  
Reload iġedded il-workers, imma l-proċess master jista' jżomm il-kodiċi qadim. Wara aġġornament tas-sigurtà restart sħiħ tas-servizz huwa t-triq sigura. Wara, ikkontrollaw il-ħin tal-bidu tal-master u tal-workers.

**Nginx irid jerġa' jibda wara aġġornament ta' PHP?**  
Nginx innifsu ma fihx PHP u ma jeħtieġx restart għall-patch ta' PHP. Jridu jerġgħu jibdew is-servizzi kollha ta' PHP-FPM. Jekk fl-istess ħin tibdlu l-konfigurazzjoni ta' Nginx, ivverifikawha b'nginx -t qabel ma terġgħu tgħabbuha.

**Għaliex pools separati għal kull websajt?**  
Kull pool jaħdem b'utent proprju u b'limiti proprji. Jekk websajt tiġi kompromessa, l-attakkant ma jilħaqx faċilment il-fajls tal-oħrajn. Barra minn hekk, il-valuri temporanji jistgħu jiġu ssettjati b'mod immirat għal kull pool.

**pm.max_requests huwa protezzjoni kontra PHP2Shell?**  
Le, ma jissostitwixxix patch. Il-valur jillimita kemm talbiet jittratta worker qabel ma jiġi sostitwit. Dan jista' jqassar il-ħajja tal-istati fil-proċess, imma mhuwiex rimedju msemmi minn php.net.

## Sorsi

- [php.net: Avviżi tas-sigurtà](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [BSI (l-Uffiċċju Federali Ġermaniż għas-Sigurtà tal-Informazzjoni)](https://www.bsi.bund.de/)
