Ένα κενό στην PHP αφήνει κάποιον να μπει στον server σας χωρίς κωδικό.Κινδυνεύετε;
PHP2Shell: δύο κρίσιμα κενά της PHP διέρρευσαν στις 20/10 και διορθώθηκαν στις 21/10. Ποιοι κινδυνεύουν, πώς το ελέγχετε στο WordPress και πώς το διορθώνετε.
Σε αυτό το άρθρο· 7 ενότητες
Χθες, 20 Οκτωβρίου 2026, διέρρευσαν πρόωρα στο internet δύο από τα σοβαρότερα κενά ασφαλείας που έχουν βρεθεί ποτέ στην PHP. Σήμερα, 21 Οκτωβρίου, στις 17:00 ώρα Ελλάδας, η ομάδα της PHP έβγαλε τις διορθώσεις. Οι ερευνητές τα ονόμασαν PHP2Shell.
Η PHP είναι η γλώσσα πάνω στην οποία τρέχουν το WordPress, το WooCommerce, το Joomla, το Drupal, το Magento, το OpenCart και αμέτρητες ιστοσελίδες που φτιάχτηκαν «στο χέρι». Αν η ιστοσελίδα ή το e-shop σας βασίζεται σε κάποιο από αυτά, το άρθρο σας αφορά. Στο τέλος θα βρείτε οδηγίες για κάθε περίπτωση: WordPress, πίνακες ελέγχου hosting, δικό σας server και Docker.
Δεν χρειάζεται κωδικός ούτε λογαριασμός: ένα κατάλληλο αίτημα αρκεί. Σύμφωνα με τη Wiz, κάθε έκδοση από την PHP 5.4 και μετά έχει τουλάχιστον ένα από τα δύο κενά.
Τι βρέθηκε, με απλά λόγια
Τα δύο κενά έχουν τους κωδικούς CVE-2026-109618 και CVE-2026-109619. Και τα δύο επιτρέπουν σε έναν επιτιθέμενο να εκτελέσει δικό του κώδικα στον server, χωρίς κωδικό και χωρίς λογαριασμό, απλώς στέλνοντας ένα κατάλληλα φτιαγμένο αίτημα στην ιστοσελίδα.
- Το πρώτο (CVE-2026-109618) συμβαίνει όταν η PHP ξεμένει από μνήμη τη λάθος στιγμή, ενώ ακόμη «στήνει» τα δεδομένα ενός αιτήματος. Τα δεδομένα μένουν μισοτελειωμένα, αλλά στο τέλος η PHP τα χειρίζεται σαν να ήταν σωστά. Αυτή η σύγχυση στη μνήμη γίνεται πόρτα για επίθεση.
- Το δεύτερο (CVE-2026-109619) μοιάζει με τραπέζι εστιατορίου που δεν καθαρίστηκε: ένα σφάλμα αφήνει πίσω του «υπολείμματα» από ένα αίτημα, που δείχνουν σε μνήμη η οποία έχει ήδη ελευθερωθεί. Το επόμενο αίτημα που θα εξυπηρετήσει η ίδια διεργασία μπορεί να τα χρησιμοποιήσει πριν καθαριστούν.
Το πιο ανησυχητικό: στους servers Apache με mod_php, η επίθεση μπορεί να γίνει πριν τρέξει καν ο κώδικας της ιστοσελίδας σας. Κανένα plugin ασφαλείας του WordPress δεν προλαβαίνει να τη σταματήσει, γιατί δεν έχει ξεκινήσει ακόμη.
Η διαδρομή ενός αιτήματος
- Ο επισκέπτης (ή ο επιτιθέμενος)στέλνει ένα αίτημα στην ιστοσελίδα
- Cloudflare ή άλλο firewallμπλοκάρει τις γνωστές μορφές της επίθεσηςΜόνο με proxy
- Web serverApache, LiteSpeed ή Nginx
- PHPεδώ βρίσκονται τα δύο κενάΕυπαθές
- WordPress, plugins, ο κώδικάς σαςμε mod_php, η επίθεση γίνεται πριν φτάσει εδώΔεν προλαβαίνει
Πώς έφτασε στο φως πριν από την ώρα του
Τα κενά είχαν αναφερθεί στην ομάδα της PHP ήδη από τον Αύγουστο, και οι διορθώσεις ετοιμάζονταν για κοινή, συντονισμένη δημοσίευση στις 22 Οκτωβρίου. Το σχέδιο χάλασε:
- Πρώτες αναφορέςΗ Calif και η OpenAI αναφέρουν το πρώτο κενό στην ομάδα της PHP. Ακολουθεί η Wiz στις 24 Αυγούστου.
- ΔιαρροήΟι κωδικοί CVE κυκλοφορούν σε φόρουμ και social media, με λάθος ώρα κυκλοφορίας και λάθος βαθμολογία (10/10).
- Η διόρθωση έρχεται νωρίτεραΗ ομάδα της PHP ανακοινώνει ότι η κυκλοφορία μεταφέρεται μία μέρα νωρίτερα.
- Βίντεο της επίθεσηςΔημοσιεύεται κατά λάθος βίντεο που δείχνει την επίθεση σε λειτουργία.
- Πρώτες απόπειρεςΗ Cloudflare και η Patchstack αναφέρουν τις πρώτες απόπειρες επίθεσης.
- Οι διορθώσεις κυκλοφορούνPHP 8.5.12, 8.4.27, 8.3.36 και 8.2.35.
Κινδυνεύει η δική μου ιστοσελίδα;
Πιθανότατα ναι, αν δεν έχει ενημερωθεί σήμερα. Σύμφωνα με την ανακοίνωση, κινδυνεύει κάθε εγκατάσταση PHP που εξυπηρετεί ιστοσελίδες, όποιος κι αν είναι ο τρόπος λειτουργίας της (PHP-FPM, mod_php, php-cgi, LiteSpeed, FrankenPHP).
| Σειρά | Ασφαλής έκδοση |
|---|---|
| PHP 8.5 | 8.5.12 ή νεότερη |
| PHP 8.4 | 8.4.27 ή νεότερη |
| PHP 8.3 | 8.3.36 ή νεότερη |
| PHP 8.2 | 8.2.35 ή νεότερη (υποστηρίζεται μέχρι 31/12/2026) |
| PHP 8.1 και παλαιότερες | καμία επίσημη διόρθωση |
Αν η ιστοσελίδα σας τρέχει ακόμη PHP 7.x ή 8.1, και τέτοιες ιστοσελίδες υπάρχουν πολλές, δεν θα έρθει επίσημη ενημέρωση. Ορισμένες εταιρείες hosting και διανομές Linux βγάζουν δικές τους διορθώσεις, όμως η σωστή λύση είναι η μετάβαση σε υποστηριζόμενη έκδοση.
Γίνονται ήδη επιθέσεις;
Τα πρώτα σημάδια ήρθαν από νωρίς: το πρωί της 21ης Οκτωβρίου, η Cloudflare και συνεργάτες της Patchstack ανέφεραν τις πρώτες απόπειρες. Μέχρι την ώρα της διόρθωσης, η ομάδα της PHP δεν είχε εντοπίσει δημόσιο exploit που να δουλεύει, και οι περισσότερες καταγραφές ήταν «ψαξίματα» για ευάλωτους servers. Επειδή όμως κυκλοφορούν ήδη πρώτες δοκιμαστικές εκδοχές της επίθεσης, η εικόνα αυτή μπορεί να αλλάξει μέσα σε ώρες. Αντιμετωπίστε το ως επείγον.
Πώς το διορθώνετε, ανάλογα με το πού τρέχει η ιστοσελίδα
Η διόρθωση έχει πάντα τέσσερα βήματα: βρίσκετε ποια έκδοση PHP τρέχει πραγματικά, την ενημερώνετε, κάνετε επανεκκίνηση και ελέγχετε ότι η αλλαγή πέρασε. Ο τρόπος αλλάζει ανάλογα με το πού φιλοξενείται η ιστοσελίδα.
WordPress (σε οποιοδήποτε hosting)
- Δείτε την ακριβή έκδοση PHP: στον πίνακα ελέγχου του WordPress, πηγαίνετε στα Εργαλεία → Υγεία ιστότοπου → Πληροφορίες → Διακομιστής. Εκεί φαίνεται ο πλήρης αριθμός, π.χ. «8.3.36». Αν έχετε WP-CLI, το ίδιο δείχνει και το
wp --info. - Αν η έκδοση δεν είναι από τις ασφαλείς, ενημερώστε την από τον πίνακα του hosting (δείτε παρακάτω) ή ζητήστε το από την εταιρεία hosting.
- Πριν αλλάξετε σειρά PHP (π.χ. από 7.4 σε 8.3), πάρτε backup και ελέγξτε ότι τα plugins και το θέμα σας υποστηρίζουν τη νέα έκδοση. Αν γίνεται, δοκιμάστε πρώτα σε staging.
- Μην εγκαταστήσετε plugins που υπόσχονται «διόρθωση PHP2Shell». Το κενό βρίσκεται στην PHP, όχι στο WordPress, και λύνεται μόνο με ενημέρωση της PHP.
- Ελέγξτε για νέους διαχειριστές στους Χρήστες και για άγνωστα plugins. Η Patchstack προτείνει επίσης να αφαιρέσετε τυχόν κλειδιά UpdraftCentral που δεν χρησιμοποιείτε, γιατί καταγράφονται επιθέσεις που τα εκμεταλλεύονται για να εγκαταστήσουν backdoors.
Κοινόχρηστο hosting (hPanel, cPanel, Plesk)
Στο κοινόχρηστο hosting την PHP την ενημερώνει η εταιρεία hosting. Από τον πίνακα εσείς επιλέγετε τη σειρά (π.χ. 8.3) και εκείνη περνά τη διορθωμένη έκδοση (8.3.36).
- hPanel (Hostinger): Websites → Manage → Advanced → PHP Configuration.
- cPanel: Select PHP Version ή MultiPHP Manager, ανάλογα με τον πάροχο.
- Plesk: Websites & Domains → PHP (PHP Settings) του domain.
Αν είστε ήδη σε 8.2, 8.3, 8.4 ή 8.5, επιβεβαιώστε την πλήρη έκδοση από το WordPress (βλ. παραπάνω) ή ρωτήστε τον πάροχο: «Έχετε περάσει τις εκδόσεις PHP της 21ης Οκτωβρίου για τα CVE-2026-109618 και CVE-2026-109619;». Αν είστε σε 8.1 ή παλαιότερη, αλλάξτε σε 8.3 ή 8.4, αφού πάρετε backup.
Δικός σας server με Ubuntu ή Debian
# 1. Ενημέρωση πακέτων
sudo apt update && sudo apt upgrade
# 2. Επανεκκίνηση της PHP (βάλτε τη δική σας έκδοση)
sudo systemctl restart php8.3-fpm
# ή, αν τρέχετε Apache με mod_php:
sudo systemctl restart apache2
# 3. Έλεγχος: και τα δύο πρέπει να δείχνουν τη διορθωμένη έκδοση
php -v
php-fpm8.3 -v
Αν παίρνετε την PHP από εξωτερικό αποθετήριο (π.χ. ondrej/sury), ελέγξτε ότι έχει ήδη δημοσιεύσει τη διορθωμένη έκδοση. Αν όχι, περιμένετε ή μεταφερθείτε προσωρινά σε άλλη πηγή.
Δικός σας server με AlmaLinux, Rocky ή RHEL
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm httpd
php -v
Αν χρησιμοποιείτε το αποθετήριο Remi, ελέγξτε ότι έχει βγάλει την ενημέρωση: την ημέρα της κυκλοφορίας δεν ήταν ακόμη διαθέσιμη.
Docker
# Κατεβάστε τη νέα εικόνα της PHP και ξαναφτιάξτε τα containers
docker compose build --pull
docker compose up -d
# Έλεγχος μέσα στο container
docker compose exec app php -v
Αν το Dockerfile σας κλειδώνει συγκεκριμένη έκδοση (π.χ. php:8.3.35-fpm), αλλάξτε την στη διορθωμένη (php:8.3.36-fpm) πριν από το build.
Τοπικά, σε XAMPP, Laragon ή Windows
Μια PHP που τρέχει μόνο στον υπολογιστή σας και δεν είναι προσβάσιμη από το internet κινδυνεύει πολύ λιγότερο. Ενημερώστε την παρ’ όλα αυτά με την επόμενη έκδοση του εργαλείου σας, ή κατεβάζοντας τη νέα PHP από το windows.php.net.
Cloudflare
Η Cloudflare έχει ήδη ενεργοποιήσει κανόνες στο firewall της για τις γνωστές μορφές της επίθεσης, και στο δωρεάν πρόγραμμα. Βοηθούν όμως μόνο αν η κίνηση περνά πραγματικά από την Cloudflare (το «πορτοκαλί σύννεφο» στις ρυθμίσεις DNS) και ο server δέχεται κίνηση μόνο από εκεί. Είναι ένα επιπλέον εμπόδιο, όχι υποκατάστατο της ενημέρωσης.
Κρύψτε την έκδοση της PHP
Πολλοί servers δείχνουν την έκδοση της PHP σε όποιον ρωτήσει, και έτσι βοηθούν όποιον ψάχνει ευάλωτους στόχους. Ελέγξτε τη δική σας ιστοσελίδα:
curl -sI https://example.gr | grep -i x-powered-by
Αν εμφανιστεί κάτι σαν X-Powered-By: PHP/8.3.35, βάλτε expose_php = Off στο php.ini και κάντε επανεκκίνηση. Δεν διορθώνει το κενό, αλλά δεν δίνει πληροφορίες σε όποιον σαρώνει το internet.
Πώς καταλαβαίνω αν έχει ήδη γίνει επίθεση
Οι ερευνητές προτείνουν να ελέγξετε τα logs του server για:
- ασυνήθιστα αιτήματα αποστολής αρχείων (multipart) που ακολουθούνται από σφάλματα μνήμης ή διαδοχικά σφάλματα 500,
- υπερβολικά μεγάλα ή παράξενα cookies
PHPSESSID, - διεργασίες της PHP που κάνουν επανεκκίνηση χωρίς εξήγηση ή ανοίγουν εντολές όπως
sh,bash,curlήwget, - νέα, άγνωστα αρχεία στον φάκελο της ιστοσελίδας, νέες προγραμματισμένες εργασίες (cron) ή νέους διαχειριστές στο WordPress.
Αν δείτε κάτι από αυτά, θεωρήστε ότι ο server έχει παραβιαστεί: απομονώστε τον, κρατήστε τα logs και αλλάξτε όλους τους κωδικούς που υπάρχουν σε αυτόν (βάση δεδομένων, email, κλειδιά API). Τα κενά αυτά μπορεί να αποκαλύψουν και περιεχόμενο της μνήμης, άρα και τέτοιους κωδικούς.
Οι ξεχασμένες ιστοσελίδες είναι ο πραγματικός κίνδυνος
Ένα παλιό WordPress σε PHP 7.4, που κανείς δεν ενημερώνει, δεν θα πάρει ποτέ διόρθωση. Οι ιστοσελίδες που ήταν ήδη σε υποστηριζόμενη έκδοση χρειάστηκαν σήμερα μία ενημέρωση. Οι υπόλοιπες χρειάζονται μετάβαση, και μάλιστα υπό πίεση. Η ενημέρωση είναι συντήρηση, όχι πολυτέλεια.
Υπάρχει και ένα δεύτερο μάθημα: λιγότερος κώδικας στον server σημαίνει λιγότερα σημεία για επίθεση. Γι’ αυτό, όπου ταιριάζει, φτιάχνω ιστοσελίδες ως έτοιμες στατικές σελίδες, χωρίς PHP και βάση δεδομένων να τρέχουν σε κάθε επίσκεψη. Τέτοια είναι και αυτή η ιστοσελίδα, και η σημερινή ευπάθεια δεν την αφορά.
Δεν ξέρετε ποια έκδοση PHP τρέχει η ιστοσελίδα σας ή αν η εταιρεία hosting την έχει ήδη ενημερώσει; Στείλτε μου μήνυμα: ο έλεγχος της ιστοσελίδας σας είναι δωρεάν και απαντώ μέσα σε μία εργάσιμη μέρα.
Το άρθρο γράφτηκε το βράδυ της 21ης Οκτωβρίου 2026, με όσα ήταν γνωστά τότε. Πηγές: php.net, PHP Foundation, Help Net Security, Huntress, Patchstack.
Σας φάνηκε χρήσιμο; Κοινοποιήστε το
Συνέχεια ανάγνωσης
- Το AI έγραψε την εφαρμογή σας. Ξέρετε τι ξέχασε να σας πει;Έλεγξα 105 δημόσιες εφαρμογές φτιαγμένες με AI και ο κώδικας έδειχνε εντάξει. Το πρόβλημα είναι όσα δεν φαίνονται: 6 πράγματα που δεν σας λέει το AI.
- 7 λάθη που διώχνουν πελάτες από την ιστοσελίδα σας (το 2ο το βλέπω σχεδόν παντού)Η ιστοσελίδα σας έχει επισκέψεις, αλλά το τηλέφωνο δεν χτυπάει; Τα 7 λάθη που βλέπω πιο συχνά σε ιστοσελίδες επιχειρήσεων και πώς διορθώνεται το καθένα.