Εν ολίγοις: Το αν το πακέτο PHP σας σε Debian ή Ubuntu έχει patch για το PHP2Shell το αναγνωρίζετε από το ακριβές επίπεδο του πακέτου και όχι από την έκδοση PHP. Η Ubuntu δημοσίευσε στις 21 Οκτωβρίου 2026 διορθωμένα πακέτα για όλες τις υποστηριζόμενες εκδόσεις, για τις παλαιότερες μέσω Ubuntu Pro. Το Debian διόρθωσε το php8.2 στο bookworm και το php8.4 στο trixie. Συγκρίνετε το εγκατεστημένο επίπεδο με το dpkg --compare-versions και επανεκκινήστε στη συνέχεια όλες τις υπηρεσίες PHP.
Το ερώτημα πίσω από το ερώτημα
Το «Έχει patch το πακέτο PHP μου;» ακούγεται σαν ερώτηση ναι ή όχι. Στην πράξη η απάντηση εξαρτάται από τρία πράγματα: από ποια πηγή προέρχεται το πακέτο, ποιο επίπεδο είναι εγκατεστημένο και εκτελείται πράγματι αυτό το επίπεδο; Το άρθρο αυτό απαντά στα δύο πρώτα σημεία για τα επίσημα πακέτα των Debian και Ubuntu. Πώς ελέγχετε γενικά έκδοση και εκτελούμενες διεργασίες, αναφέρεται στο Σωστός έλεγχος έκδοσης PHP και επιπέδου patch.
Ανακτήσαμε τα στοιχεία από τις επίσημες ανακοινώσεις ασφαλείας της Ubuntu και από το Debian Security Tracker στις 25 Οκτωβρίου 2026. Και οι δύο CVE, CVE-2026-109618 και CVE-2026-109619, αναφέρονται εκεί με τα ίδια διορθωμένα επίπεδα.
Διορθωμένα επίπεδα πακέτων στην Ubuntu
Η Ubuntu δημοσίευσε τις διορθώσεις με δύο ανακοινώσεις. Το USN-8948-1 καλύπτει τις τρέχουσες εκδόσεις, το USN-8948-2 τις παλαιότερες, που λαμβάνουν ενημερώσεις ασφαλείας μόνο μέσω Ubuntu Pro. Στις 16.04 και 14.04 η Ubuntu αναφέρει επιπλέον την προσφορά Legacy Support.
| Έκδοση Ubuntu | Πακέτο πηγής | Διορθωμένο επίπεδο |
|---|---|---|
| 26.10 | php8.5 | 8.5.9-0ubuntu2.1 |
| 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 |
| 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 |
| 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 |
| 20.04 LTS (Ubuntu Pro) | php7.4 | 7.4.3-4ubuntu2.29+esm5 |
| 18.04 LTS (Ubuntu Pro) | php7.2 | 7.2.24-0ubuntu0.18.04.17+esm14 |
Εντυπωσιακό είναι ότι όλα τα επίπεδα διατηρούν την αρχική έκδοση PHP. Η Ubuntu 24.04 μένει στην 8.3.6, παρόλο που η διόρθωση προέρχεται από την 8.3.36. Γιατί συμβαίνει αυτό και πώς το αντιμετωπίζετε, εξηγεί το άρθρο Γιατί το php -v δείχνει τον ίδιο αριθμό. Επηρεάζονται κάθε φορά, μεταξύ άλλων, τα δυαδικά πακέτα για FPM, CLI, CGI και την ενότητα Apache, για παράδειγμα php8.3-fpm και libapache2-mod-php8.3.
Διορθωμένα επίπεδα πακέτων στο Debian
Το Debian ακολουθεί εδώ διαφορετικό δρόμο και παραδίδει τις νέες εκδόσεις upstream. Σύμφωνα με το Security Tracker η κατάσταση έχει ως εξής:
| Έκδοση Debian | Πακέτο πηγής | Προηγούμενο επίπεδο | Διορθωμένο επίπεδο | Ανακοίνωση |
|---|---|---|---|---|
| 12 bookworm | php8.2 | 8.2.32-1~deb12u1 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| 13 trixie | php8.4 | 8.4.24-1~deb13u1 | 8.4.27-1~deb13u1 | DSA-6574-1 |
| forky, sid | php8.4 | 8.4.27-1 |
Η ανακοίνωση για το bookworm εμφανίστηκε ως DLA, δηλαδή μέσω Debian LTS. Για το php8.2 στο unstable ο Tracker δεν αναφέρει κατά την ανάκτηση ακόμη διορθωμένο επίπεδο. Όποιος λειτουργεί συστήματα δοκιμών στο unstable, πρέπει να το παρακολουθεί.
Παλαιότερες εκδόσεις Debian δεν εμφανίζονται στις δύο εγγραφές CVE κατά την ανάκτηση. Αν ένας διακομιστής τρέχει ακόμη σε τέτοια έκδοση, για παράδειγμα Debian 11 με PHP 7.4, δεν μπορείτε να βασιστείτε σε ενημέρωση ασφαλείας από το επίσημο αρχείο. Τότε μένουν τρεις δρόμοι: να ανεβάσετε το λειτουργικό σύστημα σε υποστηριζόμενη έκδοση, να χρησιμοποιήσετε μια εμπορική προσφορά μακροπρόθεσμης υποστήριξης, της οποίας την κάλυψη για το PHP2Shell θα ζητήσετε γραπτώς, ή να ασφαλίσετε τον διακομιστή με προσωρινά μέτρα και να περιορίσετε την προσβασιμότητά του μέχρι τη μετάβαση. Μακροπρόθεσμα βιώσιμος είναι μόνο ο πρώτος δρόμος.
Πώς συγκρίνετε με ακρίβεια το εγκατεστημένο επίπεδο
Μια ματιά στον αριθμό έκδοσης δεν αρκεί, επειδή οι εκδόσεις Debian ταξινομούνται με δικούς τους κανόνες. Το dpkg --compare-versions συγκρίνει σωστά. Οι παρακάτω εντολές είναι αμιγώς ανάγνωσης· προσαρμόστε τα ονόματα πακέτων και το επίπεδο-στόχο στην έκδοσή σας.
# Εγκατεστημένο επίπεδο και προέλευση του πακέτου
apt policy php8.3-fpm
# Όλα τα εγκατεστημένα πακέτα PHP με έκδοση
dpkg-query -W -f='${Package}\t${Version}\n' 'php*' 'libapache2-mod-php*' 2>/dev/null
# Ακριβής σύγκριση με το διορθωμένο επίπεδο (παράδειγμα Ubuntu 24.04)
v=$(dpkg-query -W -f='${Version}' php8.3-fpm)
dpkg --compare-versions "$v" ge 8.3.6-0ubuntu0.24.04.13 && echo "korrigiert: $v" || echo "PRÜFEN: $v"
Προσέξτε στην έξοδο του apt policy τη γραμμή με την πηγή του πακέτου. Αν εκεί δεν αναγράφεται το αρχείο ασφαλείας της διανομής σας, αλλά για παράδειγμα packages.sury.org ή ένα PPA, οι πίνακες παραπάνω δεν ισχύουν. Τότε μετράει το επίπεδο αυτής της πηγής τρίτου, που αναλύουμε στο άρθρο Το αποθετήριο sury.org.
Επιπλέον αξίζει μια ματιά στο παρεχόμενο changelog. Πώς βρίσκετε εκεί τους αριθμούς CVE και τους καταγράφετε ως απόδειξη, περιγράφει το άρθρο Απόδειξη των αριθμών CVE στο changelog του πακέτου.
Τυπικές παγίδες στον έλεγχο
Ελέγχθηκε μόνο ένα πακέτο: Η PHP αποτελείται από πολλά δυαδικά πακέτα. Αν το php8.3-cli είναι τρέχον, το php8.3-fpm όμως όχι, ο ιστότοπος μένει ανοιχτός. Ελέγξτε όλα τα πακέτα ενός κλάδου, ιδίως FPM, CGI και την ενότητα Apache.
Πακέτο κρατημένο: Πακέτα που έχουν ακινητοποιηθεί με apt-mark hold μένουν πίσω κατά την ενημέρωση. Το apt-mark showhold τα εμφανίζει.
Ubuntu Pro όχι ενεργό: Στις 20.04 και παλαιότερες οι διορθώσεις έρχονται μόνο αν έχει ρυθμιστεί το Ubuntu Pro. Χωρίς Pro το σύστημα παραμένει ευάλωτο παρά την εκτέλεση ενημέρωσης.
Παρωχημένος καθρέφτης: Αν ο διακομιστής λαμβάνει πακέτα μέσω εσωτερικού καθρέφτη ή proxy, βλέπει τις νέες ενημερώσεις ασφαλείας μόνο όταν αυτός ενημερωθεί. Σε περίπτωση αμφιβολίας ελέγξτε αν το apt update φτάνει πράγματι στην πηγή ασφαλείας.
Ξεχασμένη επανεκκίνηση: Τα νέα πακέτα ισχύουν μόνο μετά την επανεκκίνηση όλων των υπηρεσιών που έχουν φορτώσει PHP. Το needrestart, αν είναι εγκατεστημένο, δείχνει υπηρεσίες με παρωχημένο κώδικα.
Ένα διορθωμένο επίπεδο πακέτου αποδεικνύει μόνο ότι η ευπάθεια είναι πλέον κλειστή. Το αν ο διακομιστής είχε δεχθεί επίθεση νωρίτερα, δεν το απαντά. Διασώστε τα logs από τις 20 Οκτωβρίου.
Πώς βοηθά συγκεκριμένα η PHP SOS;
- Εντοπίζουμε για κάθε διακομιστή την προέλευση όλων των πακέτων PHP και συγκρίνουμε το επίπεδο με τις επίσημες ανακοινώσεις.
- Εγκαθιστούμε ενημερώσεις, και μέσω Ubuntu Pro, και επανεκκινούμε όλες τις επηρεαζόμενες υπηρεσίες.
- Με την υπηρεσία patch PHP λαμβάνετε ανά διακομιστή απόδειξη με επίπεδο πακέτου, αντιστοίχιση στο changelog και χρόνο επανεκκίνησης.
- Σε συστήματα με πηγές τρίτων ή παλιές εκδόσεις διευκρινίζουμε ποιος δρόμος οδηγεί σε τεκμηριωμένα διορθωμένο επίπεδο.
Συχνές ερωτήσεις
Ποια έκδοση Ubuntu περιέχει τη διόρθωση του PHP2Shell;
Σύμφωνα με το USN-8948-1, οι Ubuntu 22.04, 24.04, 26.04 και 26.10 εξυπηρετούνται με τακτικές ενημερώσεις. Για τις 14.04, 16.04, 18.04 και 20.04 η Ubuntu παραδίδει τις διορθώσεις σύμφωνα με το USN-8948-2 μέσω Ubuntu Pro.
Γιατί η Ubuntu 24.04 εξακολουθεί να δείχνει PHP 8.3.6;
Η Ubuntu ενσωματώνει διορθώσεις ασφαλείας ως backport στην υπάρχουσα έκδοση. Ο αριθμός upstream παραμένει 8.3.6, αλλάζει μόνο το επίπεδο του πακέτου. Σύμφωνα με το USN-8948-1, το διορθωμένο επίπεδο είναι 8.3.6-0ubuntu0.24.04.13.
Εξυπηρετείται ακόμη το Debian 12 bookworm;
Ναι. Σύμφωνα με το Debian Security Tracker, για το php8.2 στο bookworm υπάρχει το διορθωμένο επίπεδο 8.2.35-1~deb12u1, που ανακοινώθηκε ως DLA-4848-1 στο πλαίσιο του Debian LTS.
Ισχύει αυτό και για την PHP από το αποθετήριο sury;
Όχι. Πακέτα από πηγές τρίτων όπως το sury.org έχουν δικά τους επίπεδα εκδόσεων και δικά τους changelog. Οι πληροφορίες των Debian και Ubuntu ισχύουν μόνο για τα επίσημα πακέτα τους.
Αρκεί ένα apt upgrade;
Εγκαθιστά τα νέα πακέτα, αλλά οι εκτελούμενες διεργασίες PHP-FPM ή Apache κρατούν τον παλιό κώδικα στη μνήμη. Μόνο η επανεκκίνηση όλων των υπηρεσιών που φορτώνουν PHP κάνει το patch αποτελεσματικό.