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

Ευπάθεια Laravel και PHP2Shell: σωστή θωράκιση εφαρμογών

Το PHP2Shell επηρεάζει τις εφαρμογές Laravel μέσω της PHP. Εκτός από το patch, στο Laravel έχουν σημασία κυρίως οι queue workers, το Octane, το αρχείο .env και ο φάκελος storage.

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

Εν συντομία: Η ευπάθεια ασφαλείας του Laravel που ψάχνουν αυτή τη στιγμή πολλοί προγραμματιστές είναι το PHP2Shell και βρίσκεται στην ίδια την PHP. Μια ενημέρωση του Laravel δεν την κλείνει. Σημασία έχουν μια PHP με patch, η επανεκκίνηση όλων των διεργασιών, συμπεριλαμβανομένων των queue workers και του Octane, και ένας έλεγχος των .env, storage και public.

Τι σημαίνει το PHP2Shell για τις εφαρμογές Laravel

Το Laravel είναι το θεμέλιο πολλών ειδικών αναπτύξεων: πυλών πελατών, εσωτερικών εργαλείων, συστημάτων κρατήσεων, API για εφαρμογές. Οι ευπάθειες PHP CVE-2026-109618 και CVE-2026-109619 επιτρέπουν, σύμφωνα με την ομάδα της PHP, εξ αποστάσεως εκτέλεση κακόβουλου κώδικα χωρίς σύνδεση. Το πόσο καθαρός είναι ο κώδικας του Laravel δεν παίζει ρόλο.

Επηρεάζονται οι τρόποι λειτουργίας PHP-FPM, Apache με mod_php, php-cgi, FrankenPHP και LiteSpeed. Το Laravel Octane μπορεί να χρησιμοποιεί το FrankenPHP ως διακομιστή· τότε η PHP βρίσκεται μέσα στο πρόγραμμα FrankenPHP ή στην εικόνα (image) του container και ενημερώνεται μαζί με αυτό. Πώς έχει το θέμα στο FrankenPHP περιγράφει το Θωράκιση του FrankenPHP.

Ευπάθεια Laravel: έλεγχος της έκδοσης PHP και των διεργασιών

Στη γραμμή εντολών, το php artisan about δείχνει την έκδοση PHP, την έκδοση Laravel και σημαντικές ρυθμίσεις όπως περιβάλλον και λειτουργία debug. Αυτή όμως είναι η έκδοση της PHP CLI. Τα αιτήματα ιστού εξυπηρετούνται από το PHP-FPM ή το Octane και αυτό μπορεί να είναι άλλη έκδοση. Αν έχετε αμφιβολία, ζητήστε από τον φορέα λειτουργίας να επιβεβαιώσει ποια κατάσταση πακέτων εκτελείται σε όλους τους δρόμους.

Οι διορθωμένες εκδόσεις upstream είναι οι 8.5.12, 8.4.27, 8.3.36 και 8.2.35, τα backports μπορεί να φέρουν παλαιότερους αριθμούς. Ποιες εκδόσεις PHP υποστηρίζει η έκδοση του Laravel σας, ελέγξτε σύμφωνα με τις απαιτήσεις συστήματος στην τεκμηρίωση στο laravel.com.

Μετά την ενημέρωση έρχεται το σημείο που στο Laravel ξεχνιέται συχνότερα: οι μακρόβιες διεργασίες.

# Εμφάνιση εκδόσεων και διαμόρφωσης
php artisan about
# Εντολή προς τους queue workers να τερματίσουν μετά την τρέχουσα εργασία
php artisan queue:restart
# Τερματισμός του Horizon, ώστε να το επανεκκινήσει ο διαχειριστής διεργασιών
php artisan horizon:terminate

Οι workers επανεκκινούνται στη συνέχεια μόνο αν τους επιτηρεί ένας διαχειριστής διεργασιών όπως ο Supervisor ή το systemd. Οι διακομιστές Octane και τα containers πρέπει να επανεκκινηθούν πλήρως ή να αναπτυχθούν με νέα εικόνα. Για διαμορφώσεις με containers ισχύει το Patch της PHP σε containers Docker.

Πού είναι ευάλωτες οι εφαρμογές Laravel

Θέση Περιεχόμενο Σημείο ελέγχου
.env APP_KEY, βάση δεδομένων, mail, κλειδιά API δεν επιτρέπεται ποτέ να είναι προσβάσιμο από το web
bootstrap/cache/config.php Αποθηκευμένη στην cache διαμόρφωση με μυστικά Δικαιώματα, ημερομηνία αλλαγής
public/ Ρίζα εγγράφων με index.php Επιπλέον αρχεία PHP
storage/app/public Uploads, προσβάσιμα μέσω public/storage Κανένα αρχείο PHP
storage/logs/ laravel.log, συχνά με δεδομένα αιτημάτων Διάσωση, όχι δημόσια
vendor/ Πακέτα Composer composer audit, σύγκριση με το composer.lock

Ο φάκελος storage/app/public είναι προσβάσιμος μέσω συμβολικού συνδέσμου στο public/storage. Ένα αρχείο PHP που έχει τοποθετηθεί εκεί μπορεί, ανάλογα με τη διαμόρφωση του διακομιστή, να εκτελεστεί απευθείας. Αποκλείστε το σε επίπεδο διακομιστή ιστού.

Σημαντικό

Το APP_DEBUG πρέπει στην παραγωγή να είναι false. Μια σελίδα σφάλματος με έξοδο debug μπορεί να δείξει μεταβλητές περιβάλλοντος, διαδρομές και τμήματα του κώδικα και διευκολύνει τη δουλειά κάθε επιτιθέμενου.

Διεπαφές admin και πακέτα ως κίνδυνος

Οι εφαρμογές Laravel δεν έχουν ενιαία διεπαφή admin. Συχνά πρόκειται για δικές σας περιοχές ή για πακέτα όπως το Filament ή το Nova. Ελέγξτε ποιος έχει δικαιώματα admin, αν η σύνδεση έχει στάδιο δύο παραγόντων και αν οι διαδρομές admin χρειάζεται να είναι προσβάσιμες απ' έξω. Και τα API tokens, για παράδειγμα από το Sanctum ή το Passport, πρέπει μετά από υποψία να ανακληθούν και να εκδοθούν εκ νέου.

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

Τα πακέτα Composer είναι το δεύτερο μεγάλο μπλοκ. Κάθε εξάρτηση φέρνει δικό της κώδικα και τα πακέτα χωρίς συντήρηση εμποδίζουν αργότερα τις αναβαθμίσεις PHP. Το composer audit δείχνει γνωστές ευπάθειες, δεν αντικαθιστά όμως τον έλεγχο του δικού σας κώδικα.

Τι μπορεί μια ενημέρωση του Laravel και τι όχι

Μια ενημέρωση του Laravel ή μεμονωμένων πακέτων κλείνει γνωστά σφάλματα σε αυτόν τον κώδικα. Δεν κάνει patch στην PHP, δεν επανεκκινεί workers, δεν ανανεώνει ένα APP_KEY που έχει διαρρεύσει και δεν αφαιρεί αρχεία από το storage ή το public. Το αν συνέβη κάτι πριν από το patch μπορεί να διευκρινιστεί μόνο με έλεγχο logs, αρχείων και βάσης δεδομένων.

Για ομάδες με pipeline deployment ισχύει: η ενημέρωση της PHP ανήκει και στο περιβάλλον build και στις βασικές εικόνες, αλλιώς το επόμενο deployment φέρνει πάλι μια παλιά έκδοση. Ελέγξτε επιπλέον αν περιβάλλοντα staging ή review είναι δημόσια προσβάσιμα. Εκτελούνται συχνά με APP_DEBUG=true και πραγματικά δεδομένα και εύκολα παραβλέπονται στις ενημερώσεις ασφαλείας.

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

  • Ελέγχουμε την PHP ιστού, CLI και workers της εφαρμογής Laravel σας και συνοδεύουμε την οργανωμένη επανεκκίνηση όλων των διεργασιών.
  • Διασώζουμε logs από τις 20/10/2026, βάση δεδομένων και κατάσταση κώδικα και τα συγκρίνουμε με το αποθετήριό σας.
  • Ελέγχουμε το .env, την cache διαμόρφωσης, το storage, το public, τους λογαριασμούς admin και τα API tokens.
  • Για βαθύτερο έλεγχο του δικού σας κώδικα μεσολαβούμε για έλεγχο ασφαλείας ή δοκιμή διείσδυσης μέσω εξειδικευμένων συνεργατών.

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

Πρέπει να ενημερώσω το Laravel εξαιτίας του PHP2Shell;

Μια ενημέρωση του Laravel δεν κλείνει το PHP2Shell, επειδή η ευπάθεια βρίσκεται στον διερμηνέα PHP. Κρατήστε παρ' όλα αυτά το Laravel ενημερωμένο. Για το PHP2Shell χρειάζεστε PHP με patch και επανεκκίνηση όλων των διεργασιών PHP, και των workers.

Γιατί συχνά δεν αρκεί στο Laravel η επανεκκίνηση του PHP-FPM;

Οι queue workers, το Horizon, το Octane και ο scheduler εκτελούνται ως δικές τους διεργασίες PHP από τη γραμμή εντολών. Φορτώνουν την PHP μία φορά κατά την εκκίνηση και εργάζονται στη συνέχεια με την παλιά έκδοση στη μνήμη, μέχρι να επανεκκινηθούν.

Τι κάνω αν το αρχείο .env μπορεί να έχει διαρρεύσει;

Τότε πρέπει να ανανεώσετε το APP_KEY, τον κωδικό της βάσης δεδομένων και όλα τα κλειδιά για εξωτερικές υπηρεσίες. Λάβετε υπόψη ότι ένα νέο APP_KEY τερματίζει τις υπάρχουσες συνεδρίες και κάνει μη αναγνώσιμα τα δεδομένα που κρυπτογραφήθηκαν με το παλιό κλειδί· προγραμματίστε το με τους προγραμματιστές σας.

Πηγές

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

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

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

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