Εν συντομία: Το PHP End of Life σημαίνει: το έργο PHP δεν παρέχει πλέον ενημερώσεις ασφαλείας για αυτόν τον κλάδο. Το PHP2Shell δείχνει καθαρά τις συνέπειες, επειδή για την PHP 8.1 και παλαιότερες δεν υπάρχει επίσημη διόρθωση, ενώ η PHP 8.2 λήγει στις 31.12.2026. Όποιος εκτελείται σήμερα σε παλιό κλάδο, πρέπει να σχεδιάσει τη μετάβαση τώρα και όχι στην επόμενη έκτακτη ανάγκη.
Τι σημαίνει το PHP End of Life
Κάθε κλάδος PHP, π.χ. 8.2 ή 8.3, συντηρείται από το έργο PHP μόνο για περιορισμένο χρονικό διάστημα. Στην αρχή υπάρχουν διορθώσεις σφαλμάτων και ενημερώσεις ασφαλείας, αργότερα μόνο ενημερώσεις ασφαλείας. Μετά η υποστήριξη τελειώνει εντελώς. Τα τρέχοντα χρονικά διαστήματα δημοσιεύει το php.net στη σελίδα των υποστηριζόμενων εκδόσεων.
Μετά το τέλος της υποστήριξης το λογισμικό εξακολουθεί μεν να λειτουργεί. Αν όμως γίνει γνωστή μια νέα ευπάθεια, δεν υπάρχει πλέον patch από το έργο PHP. Ο διακομιστής παραμένει ευάλωτος μέχρι να βελτιώσει κάποιος άλλος τον κώδικα ή μέχρι να μεταβείτε σε υποστηριζόμενο κλάδο.
Για τη διοίκηση και τη διεύθυνση πληροφορικής πρόκειται κυρίως για ζήτημα σχεδιασμού. Μια μετάβαση μπορεί να προετοιμαστεί με ηρεμία. Υπό χρονική πίεση μετά από μια κρίσιμη ανακοίνωση γίνεται ακριβή και επικίνδυνη.
Τι δείχνει το PHP2Shell για τις παρωχημένες εκδόσεις
Στις 21.10.2026 το έργο PHP δημοσίευσε patches για δύο κρίσιμες ευπάθειες, τις CVE-2026-109618 και CVE-2026-109619. Και οι δύο επιτρέπουν την απομακρυσμένη εκτέλεση κακόβουλου κώδικα χωρίς σύνδεση και βαθμολογούνται με CVSS v4.0 9,2. Σύμφωνα με τον ειδικό τύπο επηρεάζονται σχεδόν όλες οι εκδόσεις έως και την PHP 5.4.
| Κλάδος | Κατάσταση σύμφωνα με το έργο PHP | Διόρθωση PHP2Shell |
|---|---|---|
| PHP 8.5 | υποστηρίζεται | 8.5.12 |
| PHP 8.4 | υποστηρίζεται | 8.4.27 |
| PHP 8.3 | υποστηρίζεται | 8.3.36 |
| PHP 8.2 | υποστηρίζεται έως 31.12.2026 | 8.2.35 |
| PHP 8.1, 8.0, 7.4 | καμία επίσημη ενημέρωση | μόνο ελάχιστα backports του πηγαίου κώδικα |
| PHP 7.3 και παλαιότερες | καμία επίσημη ενημέρωση | κανένα backport από το έργο PHP |
Για την 8.1 και παλαιότερες απομένει έτσι μόνο ο δρόμος των backports από διανομές ή παρόχους φιλοξενίας. Αυτοί εμφανίζουν συχνά ακόμη τον παλιό αριθμό έκδοσης, παρόλο που είναι ενημερωμένοι. Το αν έχει εφαρμοστεί ένα backport, μπορεί να το επιβεβαιώσει δεσμευτικά μόνο ο πάροχος. Λεπτομέρειες υπάρχουν στη σελίδα PHP 8.1 και παλαιότερες: τι ισχύει τώρα, η πλήρης επισκόπηση στη σελίδα Ποιες εκδόσεις PHP επηρεάζονται;.
Η PHP 8.2 έλαβε ακόμη τη διόρθωση για το PHP2Shell, φτάνει όμως στις 31.12.2026 στο τέλος της υποστήριξης. Όποιος μεταβαίνει τώρα από την 8.1, πρέπει να στοχεύσει απευθείας σε νεότερο κλάδο.
Οι κίνδυνοι των παρωχημένων εκδόσεων PHP συνοπτικά
Ο κίνδυνος ασφάλειας βρίσκεται στο προσκήνιο, αλλά δεν είναι ο μοναδικός. Οι παρωχημένες εκδόσεις PHP συνεπάγονται και άλλα προβλήματα:
- Κανένα patch για νέες ευπάθειες: Κάθε μελλοντική αδυναμία παραμένει ανοιχτή ή εξαρτάται από backports τρίτων.
- Παρωχημένες βιβλιοθήκες: Τα τρέχοντα πακέτα απαιτούν νεότερους κλάδους PHP. Οι διορθώσεις ασφαλείας σε βιβλιοθήκες δεν μπορούν τότε πλέον να εφαρμοστούν, όπως δείχνει ο οδηγός composer audit.
- Εξάρτηση από τον πάροχο: Οι πάροχοι φιλοξενίας χρεώνουν σε ορισμένες περιπτώσεις επιβάρυνση για παλιές εκδόσεις ή διακόπτουν τη λειτουργία. Την προθεσμία ορίζει τότε ο πάροχος και όχι εσείς.
- Προβλήματα απόδειξης: Έναντι ασφαλιστών, εντολέων ή σε ελέγχους, μια μη υποστηριζόμενη έκδοση δικαιολογείται δύσκολα. Το αν προκύπτουν από αυτό συμβατικές ή νομικές συνέπειες, το ξεκαθαρίζετε με τον ασφαλιστή ή δικηγόρο.
- Αυξανόμενος κόπος μετάβασης: Όσο μεγαλύτερη η απόσταση από την τρέχουσα έκδοση, τόσο περισσότερος κώδικας πρέπει να προσαρμοστεί.
Ιδιαίτερα συχνά επηρεάζονται παλαιότερα συστήματα καταστημάτων και ειδικές υλοποιήσεις που δεν έχουν αγγιχτεί για καιρό. Ένα τυπικό παράδειγμα είναι το Shopware 5, που εκτελείται συχνά ακόμη σε παλαιότερους κλάδους PHP.
Καταγραφή: ποιες εκδόσεις PHP εκτελούνται στην περίπτωσή σας;
Το πρώτο βήμα είναι μια πλήρης εικόνα. Σε πολλούς διακομιστές εκτελούνται παράλληλα πολλές εκδόσεις PHP, π.χ. για έναν παλιό ιστότοπο που κανείς δεν έχει πια στο μυαλό του. Αυτές οι εντολές μόνο διαβάζουν:
# Έκδοση της γραμμής εντολών
php -v
# Εγκατεστημένες εκδόσεις σε Debian/Ubuntu
ls /etc/php/
# Εγκατεστημένες εκδόσεις στο Plesk
ls /opt/plesk/php/ 2>/dev/null
# Διεργασίες PHP που εκτελούνται, με την έκδοση στο όνομα
ps -eo user,cmd | grep -E "[p]hp-fpm|[p]hp[0-9.]*-cgi|[l]sphp" | sort | uniq -c
Καταγράψτε για κάθε ιστότοπο: domain, έκδοση PHP, τρόπο λειτουργίας, CMS με έκδοση, υπεύθυνο πρόσωπο. Αυτή η λίστα αποτελεί ταυτόχρονα τη βάση για το σχέδιο έκτακτης ανάγκης. Στο shared hosting θα βρείτε τις εκδόσεις συνήθως στο μενού πελάτη του παρόχου.
Σχεδιασμός της μετάβασης: πώς προχωράτε
Μια μετάβαση σε υποστηριζόμενο κλάδο ακολουθεί κατά κανόνα τα ίδια βήματα, ανεξάρτητα από το σύστημα:
- Ορισμός στόχου: επιλέξτε έναν κλάδο που σύμφωνα με το php.net θα υποστηρίζεται όσο το δυνατόν περισσότερο και που ταιριάζει με το CMS σας σύμφωνα με τις απαιτήσεις συστήματος του κατασκευαστή.
- Έλεγχος συμβατότητας: CMS, επεκτάσεις, θέματα και δικός σας κώδικας. Τα στοιχεία βρίσκονται στην επίσημη σελίδα του αντίστοιχου κατασκευαστή.
- Στήσιμο staging: ένα αντίγραφο του ιστότοπου με τη νέα έκδοση PHP, μαζί με τη βάση δεδομένων.
- Δοκιμές: όλες οι σημαντικές διαδικασίες, από τη φόρμα επικοινωνίας έως τη διαδικασία παραγγελίας, και επιπλέον το log σφαλμάτων για προειδοποιήσεις.
- Μετάβαση και επανεκκίνηση: αλλαγή έκδοσης, επανεκκίνηση όλων των διεργασιών PHP, έλεγχος λειτουργίας και log σφαλμάτων.
Σχεδιάστε ρεαλιστικά. Ένας μικρός ιστότοπος με τρέχον CMS μεταβαίνει συχνά γρήγορα. Ένα κατάστημα που έχει μεγαλώσει επί χρόνια με πολλές επεκτάσεις και δικό του κώδικα μπορεί αντίθετα να απαιτεί προσαρμογή κώδικα και επεκτάσεων, έως και αλλαγή σε νέα κύρια έκδοση του συστήματος του καταστήματος. Ξεκαθαρίστε νωρίς ποιος αποφασίζει εσωτερικά, ποιος προϋπολογισμός είναι διαθέσιμος και αν πρέπει να εμπλακούν εξωτερικοί προγραμματιστές.
Ορίστε επιπλέον πώς θα παρακολουθείτε στο μέλλον τα τέλη υποστήριξης. Μια σταθερή ημερομηνία κάθε χρόνο, κατά την οποία συγκρίνετε τη λίστα των ιστοτόπων σας με τα στοιχεία του php.net, αποτρέπει να προκύψει το ίδιο εμπόδιο ξανά σε δύο χρόνια.
Μέχρι τη μετάβαση πρέπει να αξιοποιήσετε τα προσωρινά μέτρα του php.net, π.χ. το session.upload_progress.enabled=0 στη διαμόρφωση του διακομιστή. Δεν αποτελούν πλήρη προστασία, μειώνουν όμως τον κίνδυνο.
Πώς βοηθά συγκεκριμένα η PHP SOS;
- Καταγράφουμε όλες τις εκδόσεις PHP, τους τρόπους λειτουργίας και τις εφαρμογές στους διακομιστές σας.
- Αξιολογούμε τον κίνδυνο ανά ιστότοπο και ορίζουμε μαζί σας τη σειρά και την έκδοση-στόχο.
- Μέχρι τη μετάβαση εφαρμόζουμε προσωρινά μέτρα και ζητούμε από τον πάροχο επιβεβαιώσεις για backports.
- Μεταβαίνουμε μέσω περιβάλλοντος staging και τεκμηριώνουμε τη δοκιμή και τη μετάβαση.
Τη διαδικασία περιγράφει η υπηρεσία PHP 8.1 και παλαιότερες: μετάβαση σε υποστηριζόμενη έκδοση.
Συχνές ερωτήσεις
Πότε λήγει η υποστήριξη για την PHP 8.2;
Η PHP 8.2 φτάνει στις 31.12.2026 στο τέλος της υποστήριξης από το έργο PHP. Τη διόρθωση για το PHP2Shell την έλαβε ο κλάδος ακόμη με την έκδοση 8.2.35· για μεταγενέστερες ευπάθειες δεν αναμένεται μετά από αυτό επίσημη ενημέρωση.
Λαμβάνει η PHP 8.1 patch για το PHP2Shell;
Από το έργο PHP δεν υπάρχουν πλέον επίσημες ενημερώσεις για την 8.1 και παλαιότερες. Υπάρχουν μόνο ελάχιστα backports του πηγαίου κώδικα για τις 7.4, 8.0 και 8.1. Το αν και πώς τα εφαρμόζει ο πάροχος φιλοξενίας ή η διανομή σας, πρέπει να το ρωτήσετε τον πάροχο.
Είναι ασφαλής μια παλιά έκδοση PHP με backports του παρόχου;
Τα backports μπορούν να κλείσουν συγκεκριμένες ευπάθειες, δεν αντικαθιστούν όμως έναν υποστηριζόμενο κλάδο. Εξαρτώνται από τον πάροχο, έρχονται συχνά αργότερα και δεν καλύπτουν κάθε ευπάθεια. Ως μόνιμη λύση είναι γι' αυτό ακατάλληλα.
Πώς θα ξέρω αν το CMS μου λειτουργεί με μια νέα έκδοση PHP;
Ελέγξτε τις απαιτήσεις συστήματος στην επίσημη σελίδα του κατασκευαστή και δοκιμάστε σε περιβάλλον staging. Για επεκτάσεις και θέματα ισχύει το ίδιο, επειδή αυτά αποτελούν συχνά το πραγματικό εμπόδιο.