Αν λάβατε ένα email μου που παραπέμπει σε αυτή τη σελίδα, είναι επειδή ο ιστότοπός σας φαίνεται να εκτελεί μια έκδοση του SMS Alert (το πρόσθετο WordPress που εμφανίζεται ως “SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery”, από την Cozy Vision Technologies, το οποίο βρίσκεται στα αρχεία σας στη διαδρομή /wp-content/plugins/sms-alert/) που εμπίπτει στο επηρεαζόμενο εύρος ενός γνωστού ζητήματος ασφαλείας. Αυτή η σελίδα εξηγεί ποιο είναι το ζήτημα, πώς να διαπιστώσετε αν αφορά καθόλου τον ιστότοπό σας, και πώς να ενημερώσετε. Πρόκειται για πρόσθετο WordPress σε όλη τη διαδρομή.

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

  1. Ο ιστότοπός σας έχει ενεργοποιημένη την επαλήθευση OTP για την επαναφορά κωδικού πρόσβασης στις ρυθμίσεις του SMS Alert, και
  2. ο λογαριασμός-στόχος έχει καταχωρισμένο αριθμό τηλεφώνου.

Αν χρησιμοποιείτε το SMS Alert μόνο για ειδοποιήσεις παραγγελιών, μηνύματα εγκαταλελειμμένου καλαθιού, ή OTP κατά την ολοκλήρωση παραγγελίας ή την εγγραφή, και όχι για την επαλήθευση επαναφοράς κωδικού πρόσβασης, τότε αυτό το ζήτημα πολύ πιθανόν δεν φτάνει στον ιστότοπό σας, ακόμη και σε μια επηρεαζόμενη έκδοση. Μπορώ να διαβάσω την έκδοση του πρόσθετού σας από ένα δημόσιο αρχείο, αλλά δεν μπορώ να δω τις ρυθμίσεις σας, οπότε αυτή η ειδοποίηση είναι μια προληπτική ενημέρωση, όχι ένα επιβεβαιωμένο εύρημα για τον ιστότοπό σας.

Το ζήτημα είναι η CVE-2026-11387, μια μη εξουσιοδοτημένη κατάληψη λογαριασμού μέσω της διαδικασίας επαναφοράς κωδικού πρόσβασης του πρόσθετου (CWE-640, αδύναμη ανάκτηση κωδικού πρόσβασης). Επηρεάζει τις εκδόσεις 3.0.0 έως 3.9.5 και έχει διορθωθεί στην 3.9.6. Αν χρησιμοποιείτε μια επηρεαζόμενη έκδοση, ενημερώστε το SMS Alert στην 3.9.6 ή νεότερη. Οι κυκλοφορίες 3.9.7 και 3.9.8 ήρθαν αργότερα και διορθώνουν διαφορετικά ζητήματα· και οι δύο είναι εντάξει όσον αφορά αυτό το ζήτημα, και η 3.9.8 είναι η τρέχουσα κυκλοφορία. Φέρει βαθμολογία CVSS 9.8 και υπάρχει δημόσια διαθέσιμος κώδικας proof-of-concept, γι’ αυτό και γράφω παρότι το παραπάνω ερώτημα διαμόρφωσης μπορεί κάλλιστα να το διευθετήσει υπέρ σας.

Μια σημείωση για τον βαθμό επείγοντος, επειδή αυτή είναι μια υπό όρους ειδοποίηση. Αν δεν χρησιμοποιείτε το SMS Alert για την επαλήθευση επαναφοράς κωδικού πρόσβασης, η ενημέρωση είναι συνηθισμένη συντήρηση πρόσθετου. Αν το χρησιμοποιείτε, παρακαλώ αντιμετωπίστε την ενημέρωση ως προτεραιότητα: σε εκείνη τη διαμόρφωση, το σφάλμα θα μπορούσε να επιτρέψει σε έναν απομακρυσμένο επισκέπτη χωρίς κανέναν λογαριασμό να ορίσει νέο κωδικό πρόσβασης για οποιονδήποτε χρήστη έχει καταχωρισμένο αριθμό τηλεφώνου, συμπεριλαμβανομένου ενός διαχειριστή, κάτι που θα παρέδιδε τον έλεγχο του ιστότοπου.

Πρόκειται για σφάλμα πρόσθετου, όχι για σφάλμα του πυρήνα WordPress ή WooCommerce. Ένα πλήρως ενημερωμένο WordPress δεν σας προστατεύει αν το ίδιο το πρόσθετο SMS Alert βρίσκεται σε επηρεαζόμενη έκδοση.

Είναι γνήσιο αυτό το μήνυμα;

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

Το μόνο που έκανα ήταν να δω δημόσια ορατά αρχεία που ο ιστότοπός σας παρέχει σε κάθε επισκέπτη (όπως ακριβώς είναι δημόσια η αρχική σας σελίδα) και να σημειώσω τον αριθμό έκδοσης που δημοσιεύει το πρόσθετο στο δημόσιο αρχείο του readme.txt. Συγκεκριμένα δεν άγγιξα τη διαδικασία επαναφοράς κωδικού πρόσβασης, και τίποτα σε αυτόν τον έλεγχο δεν αγγίζει τα δεδομένα σας, την περιοχή διαχείρισής σας ή οποιοδήποτε ιδιωτικό τμήμα του ιστότοπού σας (περισσότερες λεπτομέρειες παρακάτω, στην ενότητα Τι έκανα και τι δεν έκανα).

Αν θέλετε να επαληθεύσετε ποιος είμαι, δείτε τα στοιχεία επικοινωνίας στο τέλος αυτής της σελίδας και τη σελίδα Σχετικά.

Γιατί έχει σημασία

Το SMS Alert στέλνει ειδοποιήσεις SMS και WhatsApp για καταστήματα WooCommerce, και μπορεί επίσης να τοποθετεί έναν κωδικό μίας χρήσης μπροστά από ορισμένες ενέργειες χρηστών. Μία από τις διαδικασίες που μπορεί να προστατεύσει με αυτόν τον τρόπο είναι η επαναφορά “ξεχάσατε τον κωδικό σας;”: ο επισκέπτης ζητά μια επαναφορά, το πρόσθετο στέλνει έναν κωδικό μίας χρήσης με SMS στον αριθμό τηλεφώνου του λογαριασμού, και ο νέος κωδικός πρόσβασης υποτίθεται ότι ορίζεται μόνο αφού εκείνος ο κωδικός έχει εισαχθεί σωστά.

Στις επηρεαζόμενες εκδόσεις, το βήμα που ορίζει τον νέο κωδικό πρόσβασης δεν έλεγχε αν ο κωδικός μίας χρήσης είχε πράγματι ολοκληρωθεί. Η επαναφορά μπορούσε επομένως να φτάσει μέχρι το τέλος χωρίς να εισαχθεί ποτέ ο κωδικός, από κάποιον που δεν είναι συνδεδεμένος και δεν διαθέτει δικό του λογαριασμό. Η έκδοση 3.9.6 προσθέτει τον έλεγχο που έλειπε, οπότε το βήμα ορισμού του κωδικού πρόσβασης πλέον αρνείται να εκτελεστεί αν δεν έχει προηγουμένως περάσει η πρόκληση του κωδικού.

Δύο πράγματα καθορίζουν πόσο σημαντικό είναι αυτό για έναν συγκεκριμένο ιστότοπο. Πρώτον, το σημείο εισόδου είναι αυτή η συγκεκριμένη διαμόρφωση: το πρόσθετο εκτελεί τη δική του διαδικασία επαναφοράς μόνο όπου ένας διαχειριστής έχει ενεργοποιήσει την επαλήθευση OTP για τις επαναφορές κωδικού πρόσβασης, και έχει κωδικό να στείλει μόνο για έναν λογαριασμό με καταχωρισμένο αριθμό τηλεφώνου. Ένας ιστότοπος που δεν ενεργοποίησε ποτέ αυτό το χαρακτηριστικό είναι πολύ πιθανό να μην είναι καθόλου εκτεθειμένος, ακόμη και σε μια επηρεαζόμενη έκδοση. Δεύτερον, όπου η διαμόρφωση υπάρχει πράγματι, ο αντίκτυπος είναι σοβαρός και όχι περιθωριακός, επειδή τίποτα δεν τον περιορίζει σε λογαριασμούς χαμηλών προνομίων: κάθε λογαριασμός με καταχωρισμένο αριθμό τηλεφώνου μπορεί να στοχοποιηθεί, συμπεριλαμβανομένων των διαχειριστών.

Αν το email μου ανέφερε αυτό το ζήτημα, σημαίνει ότι η έκδοση που δηλώνει ο ιστότοπός σας εμπίπτει στο επηρεαζόμενο εύρος. Δεν έλεγξα αν ο συγκεκριμένος ιστότοπός σας είναι εκμεταλλεύσιμος, και δεν μπορώ να δω πώς είναι διαμορφωμένες οι ρυθμίσεις OTP σας· το μόνο που παρατήρησα είναι ότι ο ιστότοπος δηλώνει επηρεαζόμενη έκδοση.

Επηρεάζομαι;

Δύο ερωτήσεις το καθορίζουν, με αυτή τη σειρά.

Πρώτον: χρησιμοποιείτε το SMS Alert για την επαλήθευση επαναφορών κωδικού πρόσβασης; Αυτή είναι η καθοριστική ερώτηση, και μόνο εσείς μπορείτε να την απαντήσετε. Ο έλεγχος των δικών σας ρυθμίσεων είναι απολύτως ασφαλής και είναι όλο το νόημα αυτής της σελίδας.

  • Στη διαχείριση WordPress, ανοίξτε το μενού SMS Alert και μεταβείτε στις ρυθμίσεις του, έπειτα στην ενότητα που ελέγχει την επαλήθευση OTP. Αυτή η ενότητα παραθέτει τις διαδικασίες μπροστά από τις οποίες μπορείτε να τοποθετήσετε έναν κωδικό μίας χρήσης. Δείτε αν η επαναφορά κωδικού πρόσβασης (μερικές φορές εμφανίζεται ως “lost password” ή “forgot password”) είναι ανάμεσα σε αυτές που έχετε ενεργοποιήσει.
  • Αν δεν είναι ενεργοποιημένη, αυτό το ζήτημα πολύ πιθανόν δεν φτάνει στον ιστότοπό σας, ακόμη και σε μια επηρεαζόμενη έκδοση. Η ενημέρωση εξακολουθεί να συνιστάται, ως συνηθισμένη συντήρηση.
  • Αν είναι ενεργοποιημένη, το ζήτημα σας αφορά, και θα πρέπει να ενημερώσετε άμεσα.

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

Δεύτερον: ποια έκδοση χρησιμοποιείτε; Δεν χρειάζεται να με πιστέψετε, αλλά για αυτό το πρόσθετο ένας από τους προφανείς τρόπους ελέγχου είναι παραπλανητικός, οπότε αξίζει να διαβάσετε αυτό το κομμάτι προσεκτικά.

Από την περιοχή διαχείρισης WordPress (έγκυρη πηγή):

  1. Συνδεθείτε στον πίνακα ελέγχου WordPress σας (συνήθως στο yourdomain.com/wp-admin).
  2. Μεταβείτε στα Πρόσθετα και μετά Εγκατεστημένα πρόσθετα.
  3. Βρείτε την καταχώριση που εμφανίζεται ως “SMS Alert – SMS & OTP for WooCommerce …“ (ο φάκελός της είναι sms-alert) και σημειώστε την έκδοση που εμφανίζεται κάτω από το όνομά της. Αυτή είναι η πραγματική εγκατεστημένη έκδοση.

Από το δημόσιο μανιφέστο (δεν απαιτείται σύνδεση): ανοίξτε το yourdomain.com/wp-content/plugins/sms-alert/readme.txt σε ένα πρόγραμμα περιήγησης. Η γραμμή Stable tag: κοντά στην κορυφή είναι η έκδοση που αναφέρει η εγκατάστασή σας, και αυτό είναι το ίδιο δημόσιο αρχείο που διάβασα.

Κάτι που δεν πρέπει να εμπιστεύεστε: ο αριθμός ?ver= που συνοδεύει τα front-end scripts και stylesheets του πρόσθετου στην πηγή της σελίδας σας. Το SMS Alert σφραγίζει αυτά τα assets από μια εσωτερική σταθερά που, τουλάχιστον μία φορά, καθυστέρησε σε σχέση με την πραγματική κυκλοφορία: η έκδοση 3.5.0 κυκλοφόρησε με τα assets της σφραγισμένα ως 3.4.9. Η ανάγνωση της έκδοσης με αυτόν τον τρόπο μπορεί επομένως να σας δείξει μια κυκλοφορία παλαιότερη από αυτή που πράγματι εκτελείτε, κάτι που στο όριο θα μετέτρεπε μια διορθωμένη εγκατάσταση 3.9.6 σε μια φαινομενική 3.9.5. Για αυτόν ακριβώς τον λόγο δεν τη χρησιμοποίησα για να αποφασίσω ποιον να επικοινωνήσω, και γι’ αυτό θα πρέπει να κρίνετε την έκδοσή σας από την οθόνη διαχείρισης ή τη γραμμή readme.txt αντ’ αυτού.

Στη συνέχεια εφαρμόστε αυτόν τον κανόνα, σημειώνοντας ότι οι εκδόσεις συγκρίνονται αριθμητικά, όχι αλφαβητικά, οπότε η 3.9.10 θα ήταν νεότερη από την 3.9.9:

  • 3.0.0 έως 3.9.5: δυνητικά επηρεαζόμενη (υπό την επιφύλαξη της παραπάνω ερώτησης διαμόρφωσης OTP), ενημερώστε τώρα.
  • 3.9.6 ή νεότερη: ήδη διορθωμένη. Αυτό περιλαμβάνει τις 3.9.7 και 3.9.8, που είναι μεταγενέστερες κυκλοφορίες που αντιμετωπίζουν άσχετα ζητήματα· η τρέχουσα κυκλοφορία είναι η 3.9.8.
  • Παλαιότερη από την 3.0.0: εκτός του πεδίου για το οποίο είμαι διατεθειμένος να διατυπώσω ισχυρισμό. Η παλαιότερη κυκλοφορία που εξακολουθεί να δημοσιεύει ο κατασκευαστής είναι η 3.0.0, οπότε δεν έχω κανέναν τρόπο να εξετάσω οτιδήποτε παλαιότερο, και προτιμώ να μην πω τίποτα παρά να κατηγορήσω μια έκδοση που δεν μπορώ να ελέγξω. Στην πράξη αυτή η περίπτωση είναι υποθετική: η παλαιότερη εγκατάσταση που έχω δει οπουδήποτε είναι μια κυκλοφορία 3.4.x.

Πώς να αναβαθμίσετε

Ο ασφαλέστερος δρόμος είναι να ενημερώσετε μέσα από το ίδιο το WordPress, αφού πρώτα πάρετε αντίγραφο ασφαλείας:

  1. Πάρτε αντίγραφο ασφαλείας του ιστότοπού σας (αρχεία και βάση δεδομένων) πριν κάνετε αλλαγές. Οι περισσότεροι πάροχοι φιλοξενίας προσφέρουν αντίγραφα με ένα κλικ, ή χρησιμοποιήστε ένα πρόσθετο αντιγράφων ασφαλείας για WordPress.
  2. Στη διαχείριση WordPress, μεταβείτε στον Πίνακα ελέγχου και μετά Ενημερώσεις, ή στα Πρόσθετα και μετά Εγκατεστημένα πρόσθετα. Αν εμφανίζεται ενημέρωση για το SMS Alert, εγκαταστήστε την από εκεί.
  3. Αν προτιμάτε τη γραμμή εντολών, το WP-CLI κάνει το ίδιο πράγμα: wp plugin update sms-alert (η εντολή χρησιμοποιεί το όνομα φακέλου, sms-alert).
  4. Αν δεν εμφανίζεται ενημέρωση, μπορείτε να λάβετε την πιο πρόσφατη κυκλοφορία απευθείας από τη σελίδα του πρόσθετου στον κατάλογο του WordPress.org, SMS Alert, και να ενημερώσετε μέσω Πρόσθετα και μετά Προσθήκη νέου πρόσθετου και μετά Μεταφόρτωση πρόσθετου.
  5. Μετά την ενημέρωση, επιβεβαιώστε τον νέο αριθμό έκδοσης (3.9.6 ή νεότερη) με τα παραπάνω βήματα, και ελέγξτε ότι οι ειδοποιήσεις παραγγελιών σας και τυχόν διαδικασίες OTP που χρησιμοποιείτε εξακολουθούν να λειτουργούν κανονικά.

Όσο βρίσκεστε εκεί, αξίζει να επιβεβαιώσετε ότι ο πυρήνας του WordPress, το WooCommerce, και τα υπόλοιπα πρόσθετά σας είναι ενημερωμένα, καθώς η ίδια αρχή ισχύει για όλα τους.

Μετά την ενημέρωση

Η ενημέρωση στην 3.9.6 ή νεότερη κλείνει το ζήτημα, και για τους περισσότερους ιστότοπους αυτό είναι όλη η εργασία. Αυτή η σελίδα είναι μια προληπτική ειδοποίηση, όχι μια αναφορά περιστατικού: δεν έχω καμία ορατότητα στο αν συνέβη κάτι στον ιστότοπό σας, και δεν κοίταξα.

Ένα βήμα παρακολούθησης αξίζει να εξεταστεί, και είναι υπό όρους ως προς την ίδια ερώτηση διαμόρφωσης. Αν ο ιστότοπός σας είχε ενεργοποιημένη την επαλήθευση OTP για επαναφορές κωδικού πρόσβασης ενώ βρισκόταν σε επηρεαζόμενη έκδοση, τότε ήταν τουλάχιστον θεωρητικά δυνατό κάποιος να έχει ορίσει νέο κωδικό πρόσβασης σε έναν λογαριασμό με καταχωρισμένο αριθμό τηλεφώνου. Η ενημέρωση κλείνει την τρύπα, αλλά δεν αναιρεί πρόσβαση που έχει ήδη αποκτηθεί, οπότε σε εκείνη την περίπτωση δύο συνηθισμένες προφυλάξεις είναι λογικές:

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

Αν βρείτε κάτι που σας ανησυχεί, το να το αντιμετωπίσετε όπως θα αντιμετωπίζατε οποιαδήποτε άλλη ύποπτη μη εξουσιοδοτημένη πρόσβαση είναι η σωστή αντίδραση: αλλάξτε τους κωδικούς πρόσβασης των διαχειριστών, και εξετάστε το ενδεχόμενο να αναδημιουργήσετε τα μυστικά κλειδιά και τα «salts» στο wp-config.php, κάτι που αποσυνδέει κάθε υπάρχουσα συνεδρία. Αν ο ιστότοπός σας δεν είχε ποτέ ενεργοποιημένο το OTP επαναφοράς κωδικού πρόσβασης, η ενημέρωση από μόνη της είναι αρκετή.

Τι έκανα και τι δεν έκανα

Για πλήρη διαφάνεια σχετικά με τον έλεγχο πίσω από το email μου: διάβασα μόνο δύο δημόσια αρχεία που ο ιστότοπός σας παρέχει ήδη σε κάθε επισκέπτη, συγκεκριμένα το δημόσιο αρχείο readme.txt του πρόσθετου και την αρχική σας σελίδα. Δεν απέκτησα πρόσβαση στην περιοχή διαχείρισης WordPress, στη βάση δεδομένων σας ή σε οποιοδήποτε ιδιωτικό τμήμα του ιστότοπου. Ειδικότερα, δεν άγγιξα τη διαδικασία επαναφοράς κωδικού πρόσβασης, δεν υπέβαλα τίποτα στον ιστότοπό σας, και δεν δοκίμασα ή αξιοποίησα τίποτα.

Επίσης δεν δημοσιεύω σκόπιμα τις λεπτομέρειες που θα βοηθούσαν κάποιον να δράσει πάνω σε αυτό το ζήτημα: η παραπάνω σελίδα περιγράφει το σφάλμα στο επίπεδο που χρειάζεται ένας ιδιοκτήτης ιστότοπου, και όχι περισσότερο, και δεν παραπέμπω στον δημόσιο κώδικα proof-of-concept.

Πρόκειται για παρατήρηση βασισμένη στην έκδοση: ο ιστότοπός σας δηλώνει έκδοση εντός του επηρεαζόμενου εύρους. Επειδή αυτό το ζήτημα εξαρτάται από τη διαμόρφωση, ένας ιστότοπος σε εκείνο το εύρος μπορεί να μην είναι καθόλου εκτεθειμένος (αν δεν χρησιμοποιεί επαλήθευση OTP για επαναφορές κωδικού πρόσβασης), και μπορεί επίσης να προστατεύεται ήδη με άλλα μέσα, όπως ένα τείχος προστασίας εφαρμογών ιστού. Αυτή η ειδοποίηση δεν αποτελεί δήλωση ότι ο ιστότοπός σας ήταν εκμεταλλεύσιμος τη στιγμή που έκανα τον έλεγχο.

Δεν έχω webmaster / έχω κολλήσει

Αν δεν συντηρείτε εσείς τον ιστότοπο, προωθήστε αυτή τη σελίδα σε όποιον τον συντηρεί (τον προγραμματιστή σας, την εταιρεία σας ή τον πάροχο φιλοξενίας). Θα αναγνωρίσουν γρήγορα τα παραπάνω βήματα.

Αν συντηρείτε τον ιστότοπο μόνοι σας και κολλήσετε, ευχαρίστως να σας κατευθύνω χωρίς κόστος. Επικοινωνήστε με τα στοιχεία παρακάτω.

Επικοινωνία

Evan Harris, ερευνητής ασφαλείας

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

Αναφορές

Επίσημες ανακοινώσεις και παρακολούθηση

Κατασκευαστής / πρόσθετο