# Άμεσα μέτρα όταν δεν μπορείτε ακόμη να εφαρμόσετε patch

> Προσωρινή λύση για την ευπάθεια PHP2Shell: τα προσωρινά μέτρα του php.net, σωστά ορισμένα, με τα όριά τους και υποδείξεις για τον δρόμο προς το patch.

Πηγή: https://phpsos.de/el/php2shell/sofortmassnahmen-ohne-patch/  
Ημερομηνία: 25/10/2026  
Πάροχος: PHP SOS, Επείγουσα βοήθεια PHP και ασφάλεια διακομιστών. Άμεση βοήθεια μέσω WhatsApp: https://wa.me/491736494914?text=%CE%93%CE%B5%CE%B9%CE%B1%20%CF%83%CE%B1%CF%82%2C%20PHP%20SOS%2C%20%CF%87%CF%81%CE%B5%CE%B9%CE%B1%CE%B6%CF%8C%CE%BC%CE%B1%CF%83%CF%84%CE%B5%20%CE%B2%CE%BF%CE%AE%CE%B8%CE%B5%CE%B9%CE%B1%20%CE%BC%CE%B5%20%CF%84%CE%BF%CE%BD%20%CE%B4%CE%B9%CE%B1%CE%BA%CE%BF%CE%BC%CE%B9%CF%83%CF%84%CE%AE%20PHP%20%CE%BC%CE%B1%CF%82.%20%CE%95%CF%84%CE%B1%CE%B9%CF%81%CE%B5%CE%AF%CE%B1%3A%20%E2%80%A6%20%CE%99%CF%83%CF%84%CF%8C%CF%84%CE%BF%CF%80%CE%BF%CF%82%3A%20%E2%80%A6

**Εν συντομία:** Μια προσωρινή λύση για την ευπάθεια ασφαλείας της PHP, το PHP2Shell, μπορεί να μειώσει τον κίνδυνο, δεν αντικαθιστά όμως την ενημέρωση. Το php.net αναφέρει γι' αυτό σταθερά όρια μνήμης και uploads, την απενεργοποίηση του Session Upload Progress και, στην PHP 8.5, `fatal_error_backtraces=0`. Αν ούτε αυτό είναι εφικτό σύντομα, το BSI συνιστά την προσωρινή αποσύνδεση του διακομιστή ιστού από το δίκτυο.

## Τι μπορεί και τι δεν μπορεί να προσφέρει μια προσωρινή λύση

Τα προσωρινά μέτρα του php.net προορίζονται να δυσκολέψουν τις συνθήκες υπό τις οποίες μπορούν να εκμεταλλευτούν οι ευπάθειες CVE-2026-109618 και CVE-2026-109619. Δεν αποτελούν ρητά **πλήρη προστασία**. Οι ευπάθειες έχουν διορθωθεί μόνο στις PHP 8.5.12, 8.4.27, 8.3.36 και 8.2.35 ή σε επιβεβαιωμένο backport του παρόχου σας.

Τα μέτρα έχουν νόημα όταν η ενημέρωση δεν είναι ακόμη εφικτή για συγκεκριμένο λόγο: εκκρεμεί ένα παράθυρο συντήρησης, μια εφαρμογή πρέπει πρώτα να δοκιμαστεί ή εκτελείτε PHP 8.1 ή παλαιότερη, για την οποία δεν υπάρχει πλέον επίσημη ενημέρωση. Είναι τότε μια γέφυρα, όχι στόχος.

Σχεδιάστε γι' αυτό μαζί με την προσωρινή λύση και την ενημέρωση: ποιος την υλοποιεί, σε ποιο παράθυρο συντήρησης και ποιος ελέγχει στη συνέχεια ότι έχουν επανεκκινηθεί όλοι οι workers; Μια μετάβαση χωρίς ημερομηνία λήξης κινδυνεύει να γίνει μόνιμη κατάσταση.

## Επιλογή 1: προσωρινή αποσύνδεση του διακομιστή από το δίκτυο

Το BSI κήρυξε επίπεδο προειδοποίησης 3 (πορτοκαλί) και συνιστά την προσωρινή αποσύνδεση των επηρεαζόμενων διακομιστών ιστού από το δίκτυο, όταν η ενημέρωση δεν είναι άμεσα εφικτή. Ορισμένοι πάροχοι το έκαναν προληπτικά· αυτό δεν σημαίνει ότι αυτοί οι ιστότοποι παραβιάστηκαν.

Για πολλές εταιρείες η διακοπή του καταστήματος ή της πύλης είναι δαπανηρή. Μια στάθμιση μπορεί να έχει νόημα: πρόσβαση μόνο μέσω VPN ή εγκεκριμένων διευθύνσεων IP, μια στατική σελίδα συντήρησης αντί της εφαρμογής PHP ή απενεργοποίηση επιμέρους ιστοτόπων που δεν χρειάζονται στον διακομιστή. Όσο λιγότερη PHP είναι προσβάσιμη απ' έξω, τόσο μικρότερη η επιφάνεια επίθεσης.

Σημαντικό είναι να παίρνετε την απόφαση συνειδητά και να την καταγράφετε: ποιος αποφάσισε πότε να παραμείνει ο διακομιστής σε σύνδεση και με ποια μέτρα προστασίας; Αυτό βοηθά αργότερα απέναντι στην ασφαλιστική εταιρεία, στην προστασία δεδομένων και στη διοίκηση.

## Τα προσωρινά μέτρα του php.net

| Μέτρο | Τιμή | Υπόδειξη |
|---|---|---|
| `memory_limit` | `-1`, χωρίς δυνατότητα αντικατάστασης | το όριο μνήμης να οριστεί τότε μέσω container ή cgroup |
| `post_max_size` | `8M` χωρίς uploads, `32M` με uploads | το `upload_max_filesize` κάτω από αυτό |
| Όριο μνήμης | μέσω container/cgroup | όχι μέσω `RLIMIT_AS` ή `RLIMIT_DATA` |
| `session.upload_progress.enabled` | `0` | στο php.ini, στο pool ή στη διαμόρφωση του διακομιστή, όχι με `ini_set()` ή `.user.ini` |
| `fatal_error_backtraces` | `0` | μόνο PHP 8.5 |

Η ρύθμιση `session.upload_progress.enabled=0` είναι ταυτόχρονα η λύση για την ευπάθεια που αναφέρθηκε στις 23 Οκτωβρίου, [CVE-2026-115560](https://phpsos.de/el/php2shell/cve-2026-115560/).

## Σωστός ορισμός της προσωρινής λύσης για την ευπάθεια ασφαλείας της PHP

Αποφασιστικό είναι το σημείο. Οι τιμές πρέπει να οριστούν με τρόπο ώστε μια εφαρμογή να μην μπορεί να τις αντικαταστήσει. Οι διαδρομές και τα ονόματα υπηρεσιών διαφέρουν ανά διανομή· τα παραδείγματα υποθέτουν PHP 8.3.

**PHP-FPM, στο pool** (π.χ. `/etc/php/8.3/fpm/pool.d/www.conf`):

```ini
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 6M
php_admin_flag[session.upload_progress.enabled] = off
; μόνο PHP 8.5:
; php_admin_flag[fatal_error_backtraces] = off
```

**Apache με mod_php,** στη διαμόρφωση του διακομιστή ή στο VirtualHost:

```apache
php_admin_value memory_limit -1
php_admin_value post_max_size 32M
php_admin_value upload_max_filesize 24M
php_admin_flag session.upload_progress.enabled off
```

**Όριο μνήμης μέσω cgroup,** εδώ με systemd για την υπηρεσία FPM. Την τιμή την προσαρμόζετε στον διακομιστή σας:

```ini
# sudo systemctl edit php8.3-fpm
[Service]
MemoryMax=2G
```

Στη συνέχεια επανεκκινήστε όλους τους workers, αλλιώς τίποτα από αυτά δεν ισχύει: `systemctl restart php8.3-fpm` ή, στο mod_php, τον Apache. Πώς θα ελέγξετε ότι δεν εκτελείται πλέον παλιά διεργασία, αναφέρεται στο [Επανεκκίνηση του PHP-FPM και όλων των workers](https://phpsos.de/el/php2shell/php-fpm-neustart/). Τη γενική σκλήρυνση της διαμόρφωσης περιγράφει το [Ασφαλής διαμόρφωση του php.ini](https://phpsos.de/el/ratgeber/php-ini-sicher-konfigurieren/).

> **Σημαντικό:**
> Δοκιμάστε uploads και μεγάλες φόρμες μετά την αλλαγή. Ένα υπερβολικά στενό `post_max_size` μπορεί να μπλοκάρει παραγγελίες, φόρμες αιτήσεων ή uploads πολυμέσων. Αυτός είναι λόγος να μην αναβάλλετε για πολύ την ενημέρωση.

## Πρόσθετα επίπεδα προστασίας

Ένα Web Application Firewall ή το εικονικό patching μπορεί να βοηθήσει ως περαιτέρω επίπεδο. Η Cloudflare έχει διαθέσει κανόνες προστασίας, προειδοποιεί όμως η ίδια ότι οι κανόνες με βάση μόνο τα δεδομένα του αιτήματος δεν αρκούν. Ένα WAF είναι γι' αυτό συμπλήρωμα, όχι υποκατάστατο. Περισσότερα στο [WAF και εικονικό patching](https://phpsos.de/el/leistungen/waf-virtuelles-patching/).

Διασώστε επιπλέον τα logs του διακομιστή από τις 20 Οκτωβρίου. Σύμφωνα με δημοσιεύματα παρατηρήθηκε μια πρώτη απόπειρα επίθεσης ήδη στις 17 Οκτωβρίου· τα logs αποτελούν τη βάση, αν χρειαστεί αργότερα να διευκρινίσετε αν συνέβη κάτι πριν από το patch.

## Πώς βοηθά συγκεκριμένα η PHP SOS;

- **Διευκρίνιση της κατάστασης:** Ελέγχουμε αν μια ενημέρωση είναι εφικτή σύντομα ή αν απαιτείται μετάβαση και συζητάμε μαζί σας την επιλογή να αποσυνδεθούν μέρη από το δίκτυο.
- **Ορισμός των μέτρων:** Καταχωρούμε τις τιμές του php.net στο σωστό σημείο, ορίζουμε το όριο cgroup και επανεκκινούμε όλους τους workers.
- **Δοκιμή λειτουργίας:** Φόρμες, uploads και διαδικασίες παραγγελιών τα ελέγχουμε μετά την αλλαγή.
- **Προς το patch:** Μέσω της [υπηρεσίας PHP patch](https://phpsos.de/el/leistungen/php-patch-service/) σχεδιάζουμε την ενημέρωση και αναιρούμε στη συνέχεια με έλεγχο τις προσωρινές τιμές, όπου ενοχλούν.


## Συχνές ερωτήσεις

**Προστατεύει πλήρως η προσωρινή λύση από το PHP2Shell;**  
Όχι. Το php.net χαρακτηρίζει ρητά τα μέτρα ως προσωρινά και όχι ως πλήρη προστασία. Μειώνουν τον κίνδυνο μέχρι να εφαρμοστεί η ενημέρωση. Το BSI (η γερμανική Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών) συνιστά να αποσυνδέονται προσωρινά από το δίκτυο οι διακομιστές χωρίς patch.

**Μπορώ να ορίσω τις ρυθμίσεις μέσω .htaccess ή .user.ini;**  
Για το session.upload_progress.enabled το php.net αποκλείει ρητά το ini_set() και το .user.ini. Και για το memory_limit ισχύει: η τιμή πρέπει να οριστεί με τρόπο ώστε η εφαρμογή να μην μπορεί να την αντικαταστήσει. Αυτό επιτυγχάνεται στο php.ini, στο pool FPM με php_admin_value ή στη διαμόρφωση διακομιστή του Apache.

**Αρκεί ένα Web Application Firewall ως προσωρινή λύση;**  
Ως πρόσθετο επίπεδο μπορεί να βοηθήσει. Η Cloudflare έχει διαθέσει κανόνες προστασίας, επισημαίνει όμως η ίδια ότι οι κανόνες με βάση μόνο τα δεδομένα του αιτήματος δεν αρκούν. Ένα WAF δεν αντικαθιστά ούτε την ενημέρωση ούτε τα προσωρινά μέτρα στον διακομιστή.

**Τι κάνω αν έχω μόνο shared hosting;**  
Τότε το php.ini και η επανεκκίνηση βρίσκονται στον πάροχο φιλοξενίας. Ρωτήστε συγκεκριμένα αν εφαρμόστηκε η ενημέρωση ή ορίστηκαν τα προσωρινά μέτρα και αν έχουν επανεκκινηθεί όλες οι διεργασίες PHP.

## Πηγές

- [php.net: Ανακοινώσεις ασφαλείας](https://www.php.net/)
- [BSI: Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών](https://www.bsi.bund.de/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
