Εν συντομία: Η ευπάθεια ασφαλείας του Shopware 6 που ψάχνουν αυτή τη στιγμή πολλοί έμποροι είναι στην πραγματικότητα μια ευπάθεια της PHP. Οι ενημερώσεις του Shopware δεν την κλείνουν. Χρειάζεστε PHP με patch και επανεκκίνηση όλων των διεργασιών και έπειτα πρέπει να ελέγξετε τα .env, custom/plugins, τον φάκελο public και τις ενσωματώσεις API.
Τι σημαίνει το PHP2Shell για το Shopware 6
Το Shopware 6 βασίζεται στο framework PHP Symfony και εκτελείται συνήθως με PHP-FPM πίσω από Nginx ή Apache. Οι ευπάθειες CVE-2026-109618 και CVE-2026-109619 αφορούν ακριβώς αυτόν τον τρόπο λειτουργίας. Σύμφωνα με την ομάδα της PHP επιτρέπουν την εξ αποστάσεως εκτέλεση κακόβουλου κώδικα, χωρίς σύνδεση στο shop.
Ένας επιτιθέμενος με εκτέλεση κώδικα στον διακομιστή φτάνει σε ό,τι προσπελαύνει και το ίδιο το shop: δεδομένα πελατών, παραγγελίες, έγγραφα τιμολογίων, στοιχεία πρόσβασης σε συστήματα διαχείρισης αποθεμάτων και παρόχους πληρωμών. Το τεχνικό υπόβαθρο το εξηγούμε στο Τι είναι το PHP2Shell;.
Έλεγχος της ευπάθειας στο Shopware 6: ποια PHP εκτελείται πραγματικά;
Το Shopware 6 συντηρείται σε μεγάλο βαθμό από τη γραμμή εντολών, για παράδειγμα με το bin/console. Εδώ εύκολα γίνεται λάθος: το php -v δείχνει την έκδοση της PHP της γραμμής εντολών, όχι απαραίτητα εκείνη του PHP-FPM που εξυπηρετεί τα αιτήματα του shop. Σε πολλούς διακομιστές είναι εγκατεστημένες παράλληλα περισσότερες εκδόσεις PHP.
Αξιόπιστα είναι η ένδειξη στο πάνελ φιλοξενίας για το συγκεκριμένο domain και η επιβεβαίωση του παρόχου για την κατάσταση των πακέτων. Οι διορθωμένες εκδόσεις upstream είναι οι 8.5.12, 8.4.27, 8.3.36 και 8.2.35· τα backports μπορεί να φέρουν παλαιότερους αριθμούς. Ποιες εκδόσεις PHP υποστηρίζει η έκδοση του Shopware σας, ελέγξτε σύμφωνα με τις απαιτήσεις συστήματος στην τεκμηρίωση στο shopware.com. Το πώς θα ελέγξετε μόνοι σας περιγράφεται στο Σωστός έλεγχος της έκδοσης PHP και του επιπέδου patch.
Ένα σημείο συχνά παραβλέπεται στο Shopware 6: πολλά shops επεξεργάζονται την ουρά μηνυμάτων και τις προγραμματισμένες εργασίες μέσω διεργασιών παρασκηνίου που εκτελούνται διαρκώς, για παράδειγμα bin/console messenger:consume κάτω από έναν διαχειριστή διεργασιών. Αυτές οι διεργασίες φορτώνουν την PHP μία φορά κατά την εκκίνηση. Μετά την ενημέρωση πρέπει επομένως να γίνει επανεκκίνηση όχι μόνο του PHP-FPM, αλλά και αυτών των workers. Διαφορετικά ένα μέρος του shop συνεχίζει να εργάζεται με την παλιά, ευάλωτη PHP στη μνήμη.
Φάκελοι και αρχεία που πρέπει να γνωρίζετε
| Θέση | Περιεχόμενο | Γιατί έχει σημασία |
|---|---|---|
.env, .env.local |
Στοιχεία πρόσβασης στη βάση δεδομένων, APP_SECRET, άλλα κλειδιά |
Ανανέωση μετά από υποψία |
public/ |
Ρίζα εγγράφων με index.php, πολυμέσα, αρχεία theme |
Επιπλέον αρχεία PHP είναι ύποπτα |
public/theme/ |
Μεταγλωττισμένα αρχεία JavaScript και CSS του storefront | Σημείο για εισαγόμενους skimmers |
custom/plugins/, custom/apps/ |
Επεκτάσεις | Αλλαγμένος κώδικας plugin |
files/ |
Ιδιωτικά αρχεία όπως τιμολόγια και δελτία αποστολής | Προσωπικά δεδομένα |
var/log/ |
Αρχεία καταγραφής του shop | Διάσωση ιχνών |
Ακίνδυνοι πρώτοι έλεγχοι:
# Εμφάνιση εγκατεστημένων plugins με έκδοση και κατάσταση
bin/console plugin:list
# Εμφάνιση των αρχείων PHP στον δημόσιο φάκελο
find public -type f -name "*.php"
# Εμφάνιση γνωστών ευπαθειών στις εξαρτήσεις του Composer
composer audit
Στον φάκελο public/ πρέπει να υπάρχουν μόνο λίγα, γνωστά αρχεία PHP. Ό,τι είναι άγνωστο πρέπει να διασωθεί και να εξεταστεί, όχι να διαγραφεί αμέσως.
Ελέγξτε στο Administration, στις Ρυθμίσεις > Σύστημα, τις ενότητες «Χρήστες και δικαιώματα» και «Ενσωματώσεις». Άγνωστοι χρήστες ή ενσωματώσεις API είναι μια κερκόπορτα που κάθε σάρωση αρχείων παραβλέπει.
Πρόσβαση διαχειριστή, plugins και apps ως κίνδυνος
Το Administration βρίσκεται από προεπιλογή στο /admin. Προστατέψτε το με προσωπικούς λογαριασμούς, ισχυρή σύνδεση και, αν είναι δυνατό, με περιορισμό της πρόσβασης σε γνωστά δίκτυα. Οι ενσωματώσεις για διαχείριση αποθεμάτων, marketplaces ή μεταφορικές εταιρείες πρέπει να έχουν μόνο τα δικαιώματα που πραγματικά χρειάζονται.
Τα plugins από το store και οι δικές σας αναπτύξεις φέρνουν δικό τους κώδικα PHP, τα apps επιπλέον webhooks σε εξωτερικούς διακομιστές. Όσο περισσότερες οι επεκτάσεις, τόσο μεγαλύτερη η επιφάνεια επίθεσης και τόσο πιο επίπονη κάθε αναβάθμιση PHP. Αφαιρέστε πλήρως τα plugins που δεν χρησιμοποιούνται πια.
Τι μπορεί μια ενημέρωση του Shopware και τι όχι
Μια ενημέρωση του Shopware ή ενός plugin κλείνει γνωστά σφάλματα σε αυτόν τον κώδικα. Δεν μπορεί να:
- εφαρμόσει patch στην PHP του διακομιστή,
- επανεκκινήσει παλιές διεργασίες PHP-FPM,
- αφαιρέσει με ασφάλεια ξένα αρχεία στο
public/ή χειραγωγημένα αρχεία theme, - διαγράψει ξένους χρήστες ή ενσωματώσεις,
- αποδείξει ότι πριν από το patch δεν συνέβη τίποτα.
Μετά από ενημέρωση της PHP σε νέα κύρια έκδοση πρέπει να δημιουργήσετε ξανά την cache και το theme και να ελέγξετε το shop σε περιβάλλον δοκιμών. Την αλλαγή της PHP με αποδεικτικά αναλαμβάνει, αν το επιθυμείτε, η υπηρεσία patch PHP μας.
Το Shopware 6 εκτελείται σε μεγαλύτερους εμπόρους συχνά σε περισσότερους app servers. Τότε κάθε διακομιστής πρέπει να έχει patch και να έχει επανεκκινηθεί, ακόμη και όσοι εκτελούν μόνο εργασίες παρασκηνίου. Αν ένας πάροχος υπηρεσιών λειτουργεί το shop ως διαχειριζόμενη πλατφόρμα, πρέπει να σας επιβεβαιώσει την κατάσταση για όλους τους κόμβους.
Πώς βοηθά συγκεκριμένα η PHP SOS;
- Διαπιστώνουμε ποια PHP χρησιμοποιεί πράγματι το shop σας μέσω FPM και διευκρινίζουμε το patch και την επανεκκίνηση με τον πάροχο φιλοξενίας ή το πρακτορείο.
- Διασώζουμε logs από τις 20/10/2026, βάση δεδομένων και αρχεία.
- Ελέγχουμε το
public/, τα μεταγλωττισμένα αρχεία theme, τα plugins, τους χρήστες και τις ενσωματώσεις για ανωμαλίες. - Σε περίπτωση ευρήματος καθαρίζουμε το shop μαζί με το πρακτορείο σας και ανανεώνουμε κλειδιά και προσβάσεις με σειρά.
Συχνές ερωτήσεις
Επηρεάζεται το ίδιο το Shopware 6 από το PHP2Shell;
Οι ευπάθειες βρίσκονται στην PHP, όχι στον κώδικα του Shopware. Κάθε shop Shopware 6 σε PHP χωρίς patch είναι επομένως δυνητικά ευάλωτο, ανεξάρτητα από την έκδοση του Shopware. Μια ενημέρωση του Shopware δεν αλλάζει αυτό.
Ποιο αρχείο στο Shopware 6 είναι ιδιαίτερα κρίσιμο μετά από μια επίθεση;
Το αρχείο .env ή .env.local με τα στοιχεία πρόσβασης στη βάση δεδομένων και το APP_SECRET. Όποιος μπόρεσε να το διαβάσει γνωρίζει τα στοιχεία πρόσβασής σας. Μετά από υποψία πρέπει να ανανεωθούν αυτές οι τιμές, σε συνεννόηση με το πρακτορείο σας.
Τι είναι οι ενσωματώσεις (integrations) στο Shopware 6 και γιατί να τις ελέγξω;
Οι ενσωματώσεις είναι προσβάσεις API για εξωτερικά συστήματα, όπως η διαχείριση αποθεμάτων ή τα marketplaces. Μια ξένη ενσωμάτωση με δικαιώματα διαχειριστή επιτρέπει πλήρη πρόσβαση στο shop μέσω του API, χωρίς να υπάρχει αρχείο στον διακομιστή.