Εν συντομία: Η ενημέρωση PHP στο Plesk ολοκληρώνεται μόνο όταν κάθε εγκατεστημένη έκδοση PHP βρίσκεται σε διορθωμένο επίπεδο, έχουν επανεκκινηθεί όλες οι υπηρεσίες PHP-FPM και μπορείτε να το αποδείξετε με το επίπεδο των πακέτων και την ώρα εκκίνησης των διεργασιών. Ο αριθμός έκδοσης που εμφανίζεται στο panel δεν αρκεί από μόνος του, επειδή τα backports τον αφήνουν συχνά αμετάβλητο.
Τι αφορά το PHP2Shell στους διακομιστές Plesk
Το PHP2Shell είναι η ονομασία για δύο κρίσιμες ευπάθειες στην ίδια την PHP (CVE-2026-109618 και CVE-2026-109619, με CVSS v4.0 9,2 η καθεμία). Επιτρέπουν σε επιτιθέμενους να εκτελούν κώδικα στον διακομιστή χωρίς σύνδεση. Επηρεάζονται, μεταξύ άλλων, το PHP-FPM και ο Apache με mod_php, δηλαδή ακριβώς οι τρόποι λειτουργίας που ρυθμίζει το Plesk για τους ιστοτόπους.
Στις 21/10/2026 το έργο PHP δημοσίευσε τις διορθωμένες εκδόσεις 8.5.12, 8.4.27, 8.3.36 και 8.2.35. Για την PHP 8.1 και παλαιότερες δεν υπάρχουν πλέον επίσημες ενημερώσεις. Οι διακομιστές Plesk έχουν μια ιδιαιτερότητα: εδώ εκτελούνται συχνά πολλές εκδόσεις PHP παράλληλα, ορισμένες από το ίδιο το Plesk και ορισμένες από το λειτουργικό σύστημα. Καθεμία χρειάζεται δικό της έλεγχο.
Μια ενημέρωση μέσω του panel αντικαθιστά αρχεία στον δίσκο. Όσο εκτελούνται παλιές διεργασίες PHP στη μνήμη, η ευπάθεια παραμένει ανοιχτή. Χωρίς επανεκκίνηση όλων των workers το patch δεν είναι ενεργό.
Ενημέρωση PHP στο Plesk: πρώτα καταγράψτε το υπάρχον περιβάλλον
Πριν ενημερώσετε οτιδήποτε, συγκεντρώστε μια λίστα με όλους τους handlers PHP και τα domains που τους χρησιμοποιούν. Αυτό γίνεται μέσω του panel (Εργαλεία & Ρυθμίσεις, Ρυθμίσεις PHP) ή από τη γραμμή εντολών. Οι παρακάτω εντολές δεν αλλάζουν τίποτα, απλώς διαβάζουν.
# Όλοι οι καταχωρισμένοι handlers PHP με έκδοση και διαδρομή
plesk bin php_handler --list
# Έκδοση κάθε PHP που έχει εγκαταστήσει το Plesk (η διαδρομή είναι παράδειγμα)
for p in /opt/plesk/php/*/bin/php; do echo "$p"; "$p" -v | head -1; done
Σημειώστε για κάθε handler: έκδοση, τρόπο λειτουργίας (FPM, FastCGI, μονάδα Apache) και αριθμό domains. Οι handlers χωρίς domain δεν αποτελούν άρση συναγερμού. Μπορούν να ανατεθούν αργότερα ή να εκτελούνται σε δοκιμαστικά υποτομεία.
Ελέγξτε το επίπεδο των πακέτων, όχι την ένδειξη
Το Plesk εμφανίζει τον αριθμό έκδοσης που αναφέρει η ίδια η PHP. Αν το Plesk ή η διανομή παραδίδουν τη διόρθωση ως backport, μπορεί να εμφανίζεται ακόμη, για παράδειγμα, 8.2.34, παρότι η διόρθωση περιλαμβάνεται. Αντίστροφα, ένας αριθμός που φαίνεται τρέχων μπορεί να παραπλανά, αν ένα πακέτο δεν έχει ακόμη ενημερωθεί. Καθοριστικά είναι το εγκατεστημένο επίπεδο των πακέτων και η γραπτή επιβεβαίωση του παρόχου.
# Debian/Ubuntu (τα ονόματα πακέτων είναι παράδειγμα)
dpkg -l | grep -E 'plesk-php|php[0-9.]+-(fpm|cli)'
# AlmaLinux/Rocky/RHEL (τα ονόματα πακέτων είναι παράδειγμα)
rpm -qa | grep -E 'plesk-php|^php' | sort
Συγκρίνετε τις εκδόσεις των πακέτων με τα στοιχεία στα changelogs του Plesk και στις υποδείξεις της διανομής σας. Αν δεν τεκμηριώνεται εκεί σαφώς ότι τα CVE-2026-109618 και CVE-2026-109619 έχουν διορθωθεί, ρωτήστε τον πάροχο. Ένα υπόδειγμα για αυτό θα βρείτε στη σελίδα Ρωτήστε τον πάροχο φιλοξενίας για την κατάσταση του patch.
Εφαρμογή της ενημέρωσης και επανεκκίνηση όλων των workers
Η ίδια η ενημέρωση γίνεται μέσω του Plesk Installer ή του διαχειριστή πακέτων του συστήματος. Ακολουθεί το βήμα που παραλείπεται συχνότερα: η επανεκκίνηση. Στο Plesk κάθε έκδοση PHP έχει δική της υπηρεσία FPM. Επανεκκινήστε όλες, όχι μόνο εκείνη του κύριου domain.
# Λίστα όλων των υπηρεσιών PHP-FPM (τα ονόματα υπηρεσιών είναι παράδειγμα)
systemctl list-units --type=service | grep -i 'php.*fpm'
# Επανεκκίνηση ανά υπηρεσία, π.χ.:
systemctl restart plesk-php84-fpm
# Έλεγχος της ώρας εκκίνησης των διεργασιών PHP που εκτελούνται
ps -eo pid,lstart,cmd | grep -E 'php-fpm|php-cgi' | grep -v grep
Αν ένα domain εκτελείται με Apache και mod_php, επανεκκινήστε πλήρως τον Apache. Αν η ώρα εκκίνησης μιας διεργασίας PHP είναι πριν από την ενημέρωση, η διεργασία δεν έχει ακόμη ανανεωθεί. Περισσότερα για αυτό το βήμα υπάρχουν στη σελίδα Επανεκκίνηση του PHP-FPM και όλων των workers.
Προσωρινή προστασία, όταν η ενημέρωση λείπει ακόμη
Αν για μια έκδοση δεν υπάρχει ακόμη διαθέσιμο patch, το php.net συνιστά προσωρινά μέτρα. Δεν αποτελούν πλήρη προστασία. Στο Plesk ορίζετε τις τιμές που δεν επιτρέπεται να αντικαθιστούν οι εφαρμογές ως php_admin_value στις πρόσθετες οδηγίες FPM του domain ή σε επίπεδο διακομιστή στο php.ini της αντίστοιχης έκδοσης.
; Παράδειγμα πρόσθετων οδηγιών PHP-FPM στο Plesk
php_admin_value[session.upload_progress.enabled] = 0
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 6M
Με uploads προβλέπεται σύμφωνα με το php.net post_max_size = 32M, με το upload_max_filesize χαμηλότερα. Στην PHP 8.5 προστίθεται το fatal_error_backtraces=0. Ο περιορισμός μνήμης μέσω memory_limit=-1 πρέπει να εφαρμόζεται μόνο μαζί με όριο σε επίπεδο container ή cgroup. Στη συνέχεια ακολουθεί και πάλι επανεκκίνηση όλων των workers. Λεπτομέρειες υπάρχουν στη σελίδα Άμεσα μέτρα χωρίς patch. Το BSI (Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών της Γερμανίας) συνιστά να αποσυνδέονται προσωρινά οι διακομιστές ιστού από το δίκτυο, όταν η ενημέρωση δεν είναι άμεσα δυνατή.
Μετά το patch: διασώστε τα logs και ελέγξτε για ίχνη
Ένα patch κλείνει την ευπάθεια για το μέλλον. Δεν αφαιρεί κακόβουλο λογισμικό που εισήχθη νωρίτερα και δεν αποδεικνύει ότι δεν συνέβη τίποτα. Γι' αυτό διατηρήστε τα logs του διακομιστή ιστού από τις 20/10/2026. Το Plesk τα αποθηκεύει ανά domain στον κατάλογο logs· μην μειώσετε τη διάρκεια διατήρησης σε αυτή την κατάσταση.
Προσέξτε για νέα ή τροποποιημένα αρχεία PHP στους καταλόγους uploads, για άγνωστες προγραμματισμένες εργασίες και για νέους λογαριασμούς διαχειριστή. Δημοσιευμένα, επιβεβαιωμένα Indicators of Compromise δεν υπάρχουν μέχρι στιγμής· ο εντοπισμός βασίζεται σε ανάλυση συμπεριφοράς. Αν εντοπίσετε ανωμαλίες, μη συνεχίσετε μόνοι σας, αλλά διασώστε πρώτα την κατάσταση.
Πώς βοηθά συγκεκριμένα το PHP SOS;
- Καταγράφουμε όλους τους handlers PHP του διακομιστή Plesk σας, αντιστοιχίζουμε τα domains και ελέγχουμε το πραγματικό επίπεδο των πακέτων ανά έκδοση.
- Στο πλαίσιο της υπηρεσίας PHP-Patch εφαρμόζουμε ενημερώσεις, επανεκκινούμε όλες τις υπηρεσίες και τεκμηριώνουμε τις ώρες εκκίνησης των διεργασιών ως απόδειξη.
- Όπου λείπει patch, ορίζουμε τα προσωρινά μέτρα σύμφωνα με το php.net σε επίπεδο διακομιστή και με τρόπο που δεν αντικαθίσταται.
- Διασώζουμε logs και αναζητούμε ίχνη παραβίασης, σε περίπτωση ευρήματος με Incident Response.
- Στη συνέχεια σκληρύνουμε τον διακομιστή μόνιμα και αφαιρούμε τις εκδόσεις PHP που δεν χρειάζονται.
Συχνές ερωτήσεις
Γιατί το Plesk εμφανίζει ακόμη PHP 8.2.34 μετά την ενημέρωση;
Οι διανομές και οι πάροχοι εφαρμόζουν ορισμένες φορές τις διορθώσεις ασφαλείας ως backport, χωρίς να αλλάξουν τον αριθμό έκδοσης. Καθοριστικά είναι τότε το επίπεδο των πακέτων και η επιβεβαίωση του παρόχου. Η ένδειξη από μόνη της δεν αποδεικνύει ούτε την ύπαρξη ούτε την απουσία patch.
Αρκεί να πατήσω «Ενημέρωση» στο panel του Plesk;
Η ενημέρωση αποθηκεύει νέα αρχεία, όμως οι διεργασίες PHP που εκτελούνται συνεχίζουν να λειτουργούν με τον παλιό κώδικα στη μνήμη. Η νέα κατάσταση ενεργοποιείται μόνο μετά από επανεκκίνηση όλων των υπηρεσιών PHP-FPM και του διακομιστή ιστού. Ελέγξτε στη συνέχεια την ώρα εκκίνησης των διεργασιών.
Πρέπει να κάνω patch και σε εκδόσεις PHP που δεν χρησιμοποιεί κανένα domain;
Ναι, εφόσον παραμένουν εγκατεστημένες. Ένας handler που δεν χρησιμοποιείται μπορεί αργότερα να ανατεθεί κατά λάθος ή να είναι προσβάσιμος μέσω περιβαλλόντων δοκιμών. Τις εκδόσεις που δεν χρειάζεστε είναι προτιμότερο να τις απεγκαταστήσετε πλήρως.
Βοηθά μια ενημέρωση του WordPress στο Plesk Toolkit κατά του PHP2Shell;
Όχι. Το PHP2Shell αφορά την ίδια την PHP και όχι το CMS. Μια ενημέρωση του CMS είναι ούτως ή άλλως σκόπιμη, δεν κλείνει όμως αυτή την ευπάθεια.