Τρέχουσα κατάσταση: PHP2Shell. Δύο κρίσιμες ευπάθειες της PHP (CVSS 9.2) επιτρέπουν κακόβουλο κώδικα χωρίς σύνδεση. Patches από τις 21/10/2026.Τι πρέπει να γίνει τώρα →

WAF και εικονικό patching για PHP

Όταν η ενημέρωση της PHP δεν είναι άμεσα εφικτή, μειώνουμε τον κίνδυνο με Web Application Firewall, προσωρινά μέτρα PHP και σταθερό πλάνο για το πραγματικό patch.

Ημερομηνία 4 λεπτά ανάγνωσηςΥπηρεσίες

Εν συντομία: Το εικονικό patching για PHP γεφυρώνει τον χρόνο μέχρι να εφαρμοστεί η πραγματική ενημέρωση. Συνδυάζουμε γι' αυτό κανόνες ενός Web Application Firewall με τα προσωρινά μέτρα που δημοσίευσε το php.net για το PHP2Shell και ορίζουμε αμέσως τον δρόμο προς το τακτικό patch. Πλήρη προστασία δεν προσφέρει, μειώνει όμως τον κίνδυνο στο ενδιάμεσο διάστημα.

Πότε έχει νόημα το εικονικό patching για PHP

Το BSI (η γερμανική Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών) συνιστά για το PHP2Shell άμεση ενημέρωση και, όταν αυτή δεν γίνεται, προσωρινή αποσύνδεση των διακομιστών ιστού από το δίκτυο. Για πολλές εταιρείες τίποτα από τα δύο δεν είναι άμεσα εφικτό: ένα κατάστημα πρέπει να παραμείνει προσβάσιμο, μια ιδιόκτητη εφαρμογή χρειάζεται δοκιμή πριν από την ενημέρωση ή ο διακομιστής εκτελεί PHP 8.1 και παλαιότερη, για την οποία δεν υπάρχουν πλέον επίσημες ενημερώσεις.

Σε αυτές τις περιπτώσεις το εικονικό patching είναι μια γέφυρα. Δεν αντικαθιστά την απόφαση αν θα ήταν καταλληλότερη η λειτουργία εκτός σύνδεσης. Αυτή τη στάθμιση την κάνετε εσείς, εμείς παρέχουμε την τεχνική εκτίμηση.

Γιατί ένα WAF από μόνο του δεν αρκεί

Η Cloudflare ανέφερε παρατηρημένες απόπειρες επίθεσης και διέθεσε κανόνες προστασίας, προειδοποιεί όμως ότι οι κανόνες με βάση μόνο τα δεδομένα του αιτήματος δεν αρκούν. Ο λόγος βρίσκεται στη φύση των ευπαθειών. Στο CVE-2026-109618 μια κατάσταση Out of Memory μπορεί να διακόψει την PHP ενώ τα δεδομένα του αιτήματος έχουν αρχικοποιηθεί μόνο εν μέρει. Στο CVE-2026-109619 μια εσωτερική κατάσταση μπορεί να παραμείνει μετά την αποδέσμευση της μνήμης και να αξιοποιηθεί από ένα μεταγενέστερο αίτημα στον ίδιο worker. Τέτοια σφάλματα εξαρτώνται από την κατάσταση του διακομιστή, όχι μόνο από το περιεχόμενο ενός μεμονωμένου αιτήματος.

Γι' αυτό στηριζόμαστε σε πολλά επίπεδα: κανόνες WAF πριν από τον διακομιστή, προσωρινά μέτρα στην ίδια την PHP και ενισχυμένη παρατήρηση του διακομιστή. Κάθε επίπεδο συγκρατεί ένα μέρος, κανένα δεν αρκεί μόνο του. Μαζί σας εξασφαλίζουν τον χρόνο να εφαρμόσετε την ενημέρωση με τάξη.

Τα προσωρινά μέτρα σύμφωνα με το php.net

Το php.net αναφέρει περισσότερες ρυθμίσεις που μειώνουν τον κίνδυνο, ρητά χωρίς πλήρη προστασία. Σημασία έχει οι εφαρμογές να μην μπορούν να αντικαταστήσουν αυτές τις τιμές. Ένα παράδειγμα για ένα pool PHP-FPM με uploads:

; Προσωρινά μέτρα PHP2Shell (όχι πλήρης προστασία), στη συνέχεια επανεκκίνηση όλων των workers
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 32M
php_admin_value[upload_max_filesize] = 30M
php_admin_flag[session.upload_progress.enabled] = off
; μόνο PHP 8.5:
php_admin_flag[fatal_error_backtraces] = off

Χωρίς uploads το php.net συνιστά post_max_size = 8M. Επειδή το memory_limit αίρεται, πρέπει να προστεθεί όριο μνήμης σε επίπεδο container ή cgroup, όχι μέσω RLIMIT_AS ή RLIMIT_DATA. Η ρύθμιση session.upload_progress.enabled=0 ανήκει στο php.ini, στο pool FPM ή στη διαμόρφωση του διακομιστή, όχι στο ini_set() ή στο .user.ini. Είναι ταυτόχρονα η λύση για την υπόδειξη σχετικά με το CVE-2026-115560. Όλα τα μέτρα σε επισκόπηση θα βρείτε στο Άμεσα μέτρα όταν δεν μπορείτε ακόμη να εφαρμόσετε patch.

Σημαντικό

Τα προσωρινά μέτρα ισχύουν μόνο μετά από επανεκκίνηση όλων των workers PHP. Και προστατεύουν μόνο από μελλοντικές επιθέσεις: αν είχε εισέλθει κάποιος νωρίτερα, δεν το απαντούν.

Πότε η λειτουργία εκτός σύνδεσης είναι η καλύτερη επιλογή

Το εικονικό patching δεν είναι σε κάθε περίπτωση η σωστή απάντηση. Σε ορισμένες συνθήκες συμβουλεύουμε να ακολουθήσετε το BSI και να αποσυνδέσετε προσωρινά τον διακομιστή ιστού από το δίκτυο μέχρι να εφαρμοστεί το patch:

  • ο διακομιστής εκτελείται με Apache και mod_php, όπου η ομάδα της PHP κατατάσσει τον κίνδυνο στον υψηλότερο και έχει επιδειχθεί exploit προτού καν εκτελεστεί κώδικας της εφαρμογής
  • στον διακομιστή βρίσκονται ιδιαίτερα προστατευόμενα δεδομένα, όπως δεδομένα υγείας, εντολέων ή πληρωμών
  • δεν υπάρχει δυνατότητα να οριστούν σταθερά τα προσωρινά μέτρα στη διαμόρφωση του διακομιστή, για παράδειγμα σε ορισμένα πακέτα shared hosting
  • υπάρχουν ήδη ενδείξεις ότι ο διακομιστής δέχθηκε επίθεση

Μια προσωρινή λειτουργία εκτός σύνδεσης δεν σημαίνει ότι ο ιστότοπός σας έχει παραβιαστεί. Ορισμένοι πάροχοι έθεσαν ιστοτόπους εκτός σύνδεσης για λόγους προφύλαξης. Μια σύντομη, ουσιαστική σελίδα ενημέρωσης για τους επισκέπτες είναι τότε συνήθως καλύτερη λύση από μια ανεξήγητη διακοπή.

Πώς βοηθά συγκεκριμένα η PHP SOS;

  1. Έλεγχος της κατάστασης: Καταγράφουμε εκδόσεις PHP, τρόπους λειτουργίας και υπάρχοντα επίπεδα προστασίας, όπως CDN, WAF ή reverse proxy. Στο mod_php επισημαίνουμε τον αυξημένο κίνδυνο που βλέπει εκεί η ομάδα της PHP.
  2. Χτίσιμο επιπέδων: Ενεργοποιούμε ή συμπληρώνουμε κανόνες WAF, ορίζουμε σταθερά τα προσωρινά μέτρα στη διαμόρφωση του διακομιστή και περιορίζουμε τη μνήμη μέσω container ή cgroup. Για εγκαταστάσεις Nginx προσανατολιζόμαστε στο Ασφάλιση του Nginx με PHP-FPM.
  3. Επανεκκίνηση και δοκιμή: Όλες οι διεργασίες PHP επανεκκινούνται, και στη συνέχεια ελέγχουμε uploads, φόρμες, σύνδεση και ταμείο.
  4. Παρατήρηση: Στο ενδιάμεσο διάστημα προσέχουμε ενισχυμένα για καταρρεύσεις workers, αιχμές μνήμης και ασυνήθιστες διεργασίες.
  5. Σχεδιασμός του patch: Ορίζουμε πότε και πώς θα γίνει η τακτική ενημέρωση και την υλοποιούμε μέσω της υπηρεσίας PHP patch.

Τι λαμβάνετε, τι χρειαζόμαστε και τι δεν υποσχόμαστε

Λαμβάνετε μια τεκμηρίωση όλων των κανόνων και ρυθμίσεων που ορίστηκαν, με αιτιολόγηση, τα αποτελέσματα των δοκιμών και ένα πλάνο ημερομηνιών και μέτρων για το πραγματικό patch. Από εσάς χρειαζόμαστε πρόσβαση σε διακομιστή ή πίνακα ελέγχου, πρόσβαση σε CDN ή WAF, αν υπάρχει, έναν τεχνικό υπεύθυνο επικοινωνίας και στοιχεία για τις λειτουργίες uploads των εφαρμογών σας.

Δεν υποσχόμαστε ότι το εικονικό patching αποτρέπει μια επίθεση. Μειώνει τον κίνδυνο για περιορισμένο χρονικό διάστημα. Στην PHP 8.1 και παλαιότερες δεν αποτελεί μόνιμη κατάσταση· εδώ η μετάβαση σε υποστηριζόμενη έκδοση ανήκει στο πλάνο.

Συχνές ερωτήσεις

Τι είναι το εικονικό patching;

Εικονικό patching σημαίνει ότι μια γνωστή ευπάθεια θωρακίζεται πριν από την εφαρμογή, αντί να αλλάξει ο ίδιος ο κώδικας. Αυτό γίνεται συνήθως μέσω Web Application Firewall ή αλλαγών διαμόρφωσης. Είναι μια γέφυρα, όχι υποκατάστατο της ενημέρωσης.

Αρκεί το WAF του παρόχου CDN μου κατά του PHP2Shell;

Από μόνο του κατά κανόνα όχι. Η Cloudflare έχει διαθέσει κανόνες προστασίας, προειδοποιεί όμως η ίδια ότι οι κανόνες με βάση μόνο τα δεδομένα του αιτήματος δεν αρκούν. Το WAF είναι ένα επιπλέον επίπεδο δίπλα στα προσωρινά μέτρα και το patch.

Για πόσο διάστημα μπορώ να βασίζομαι στο εικονικό patching;

Όσο το δυνατόν λιγότερο. Προορίζεται να γεφυρώσει τον χρόνο μέχρι την τακτική ενημέρωση, για παράδειγμα μέχρι να ελευθερωθεί ένα παράθυρο συντήρησης ή να δοκιμαστεί μια εφαρμογή. Στην PHP 8.1 και παλαιότερες ανήκει και ένα πλάνο μετάβασης.

Μπορούν τα προσωρινά μέτρα να διαταράξουν τον ιστότοπό μου;

Ναι, είναι δυνατό. Μικρότερα όρια uploads μπορεί να εμποδίσουν τη μεταφόρτωση μεγάλων αρχείων και η απενεργοποίηση του Session Upload Progress επηρεάζει τις ενδείξεις προόδου κατά το ανέβασμα. Δοκιμάζουμε τις σημαντικότερες λειτουργίες μετά από κάθε αλλαγή.

Πηγές

Άμεση επικοινωνία

Κάθε ώρα μετράει. Γράψτε μας τώρα.

Περιγράψτε σύντομα το σύστημα, την έκδοση PHP και ό,τι παρατηρείτε. Θα επικοινωνήσουμε μαζί σας, θα διευκρινίσουμε την κατάσταση και θα εργαστούμε εξ αποστάσεως μέχρι το περιστατικό να κλείσει και να τεκμηριωθεί.

Άμεση βοήθεια