Ειδοποίηση ασφαλείας Content Views
Αν λάβατε ένα email μου που παραπέμπει σε αυτή τη σελίδα, είναι επειδή ο ιστότοπός σας φαίνεται
να εκτελεί μια έκδοση του Content Views – Post Grid & Filter (το πρόσθετο WordPress από την
Content Views / PT Guy, το οποίο βρίσκεται στα αρχεία σας στη διαδρομή
/wp-content/plugins/content-views-query-and-display-post-page/) που εμπίπτει στο επηρεαζόμενο
εύρος ενός γνωστού ζητήματος ασφαλείας. Αυτή η σελίδα εξηγεί ποιο είναι το ζήτημα, πώς να
διαπιστώσετε πόσο σας αφορά, πώς να διαβάσετε την έκδοσή σας χωρίς να παραπλανηθείτε, και πώς να
ενημερώσετε.
Το ζήτημα είναι η CVE-2026-15361, μια ευπάθεια τύπου SQL injection στον χειρισμό προεπισκόπησης του πρόσθετου. Επηρεάζει κάθε κυκλοφορία πριν από την 4.5 και έχει διορθωθεί στην 4.5, που δημοσιεύτηκε στις 28 Ιουλίου 2026. Αν χρησιμοποιείτε κάτι παλαιότερο από την 4.5, ενημερώστε το Content Views στην 4.5.1 ή νεότερη, που είναι η τρέχουσα κυκλοφορία τη στιγμή που γράφονται αυτά (4 Αυγούστου 2026). Δεν υπάρχει δημοσιευμένη βαθμολογία CVSS για αυτό το ζήτημα, οπότε δεν πρόκειται να σας αναφέρω κάποια, και δεν γνωρίζω δημόσιο κώδικα εκμετάλλευσης για αυτό.
Δεν υπάρχει καμία παλαιότερη έκδοση που να είναι ασφαλής. Δεν πρόκειται για ένα ελάττωμα που εισήχθη κάποια στιγμή στην πορεία του ιστορικού του πρόσθετου και διορθώθηκε αργότερα. Έλεγξα κάθε δημοσιευμένη ετικέτα κυκλοφορίας στο ιστορικό του πρόσθετου, από την πρώτη το 2014 μέχρι την 4.4, και ο επηρεαζόμενος κώδικας υπάρχει σε όλες τους. Το «η εγκατάστασή μου είναι πολύ παλιά για να επηρεάζεται» δεν αποτελεί διέξοδο εδώ. Οι μόνες εκδόσεις που δεν επηρεάζονται είναι η 4.5 και οι νεότερές της.
Πριν από οτιδήποτε άλλο, ο όρος που καθορίζει πόσο σας αφορά αυτό, επειδή προτιμώ να τον πω παρά να αφήσω την ειδοποίηση να ακούγεται μεγαλύτερη απ’ όσο πραγματικά είναι: αυτό το ελάττωμα μπορεί να χρησιμοποιηθεί μόνο από κάποιον που είναι συνδεδεμένος στον ιστότοπό σας. Δεν έχει σημασία τι μπορεί κανονικά να κάνει ο λογαριασμός του, και ο χαμηλότερος ρόλος του WordPress αρκεί, αλλά χρειάζεται λογαριασμό. Άρα το ερώτημα που καθορίζει την έκθεσή σας δεν είναι κάποια ρύθμιση οπουδήποτε στο πρόσθετο, είναι ποιος μπορεί να αποκτήσει λογαριασμό στον ιστότοπό σας. Μπορώ να διαβάσω την έκδοση του πρόσθετού σας από ένα δημόσιο αρχείο, και μπορώ να δω αν το WordPress εξυπηρετεί την τυπική του σελίδα εγγραφής, αλλά δεν μπορώ να δω ποιος κατέχει λογαριασμούς στον ιστότοπό σας, οπότε αυτή η ειδοποίηση είναι μια προληπτική ενημέρωση και όχι ένα επιβεβαιωμένο εύρημα για εσάς.
Σημειώστε τι δεν είναι αυτός ο όρος. Δεν υπάρχει καμία επιλογή απενεργοποίησης, καμία λειτουργία για κατάργηση δημοσίευσης, και καμία ρύθμιση που να σας βγάζει εκτός εύρους. Ο επηρεαζόμενος χειριστής είναι καταχωρισμένος σε κάθε εγκατάσταση μιας επηρεαζόμενης έκδοσης, ανεξάρτητα από το αν έχετε ποτέ τοποθετήσει ένα πλέγμα άρθρων σε μια σελίδα. Αν ψάξετε για ένα πλαίσιο ελέγχου για να το απενεργοποιήσετε, δεν θα βρείτε κανένα, επειδή δεν υπάρχει. Η ενημέρωση είναι η διόρθωση.
Μια σημείωση για τον βαθμό επείγοντος, επειδή αυτή είναι μια υπό όρους ειδοποίηση. Αν είστε το μόνο άτομο με λογαριασμό στον ιστότοπο και κανείς άλλος δεν μπορεί να αποκτήσει έναν, η ενημέρωση είναι συνηθισμένη συντήρηση πρόσθετου. Αν ο ιστότοπός σας δέχεται εγγραφές από άλλα άτομα, παρακαλώ αντιμετωπίστε το ως προτεραιότητα, και σημειώστε ότι οι εγγραφές παίρνουν περισσότερες μορφές από την προφανή: ένα κατάστημα WooCommerce, ένα πρόσθετο μελών ή φόρουμ, ένα ιστολόγιο πολλών συγγραφέων, και μια προσαρμοσμένη σελίδα εγγραφής δημιουργούν όλα λογαριασμούς χωρίς να εμπλέκεται ποτέ η ίδια η φόρμα εγγραφής του WordPress.
Αν έχετε πράγματι ανοιχτή τη σελίδα εγγραφής του WordPress σε επισκέπτες και δεν τη χρειάζεστε, το να την απενεργοποιήσετε είναι ένα λογικό ενδιάμεσο βήμα, επειδή περιορίζει ποιος μπορεί να φτάσει σε αυτό. Παρακαλώ όμως μην το εκλάβετε ως ένδειξη ότι είστε πλέον εκτός κινδύνου. Το κλείσιμο της εγγραφής κλείνει μόνο μία από τις πολλές πόρτες προς έναν λογαριασμό, και δεν κάνει τίποτα για τους λογαριασμούς που ήδη υπάρχουν. Η ενημέρωση του πρόσθετου είναι αυτό που πραγματικά αφαιρεί το ζήτημα.
Αξίζει επίσης να είμαι ακριβής ως προς το τι είναι και τι δεν είναι αυτό το ζήτημα. Επιτρέπει σε κάποιον με λογαριασμό χαμηλών προνομίων να διαβάσει δεδομένα από τη βάση δεδομένων του ιστότοπού σας που ο λογαριασμός του δεν θα έπρεπε να μπορεί να δει. Αυτό αξίζει να διορθωθεί, καθώς μια βάση δεδομένων WordPress περιέχει πράγματα όπως διευθύνσεις email χρηστών και κρυπτογραφικά αποτυπώματα (hashes) κωδικών πρόσβασης, και σε ορισμένους ιστότοπους εγγραφές μελών ή πελατών. Δεν πρόκειται όμως για κατάληψη λογαριασμού διαχειριστή, δεν είναι τρόπος να αποκτήσει κάποιος μόνος του λογαριασμό διαχειριστή, και δεν είναι απομακρυσμένη εκτέλεση κώδικα. Είναι πιο περιορισμένο από τα ζητήματα πλήρους παραβίασης για τα οποία γράφω αλλού, και προτιμώ να θέσω το μέγεθος με ειλικρίνεια παρά να σας αφήσω με μια πιο τρομακτική εντύπωση από όση δικαιολογούν τα γεγονότα.
Πρόκειται για σφάλμα πρόσθετου, όχι για σφάλμα του πυρήνα WordPress. Ένα πλήρως ενημερωμένο WordPress δεν σας προστατεύει αν το ίδιο το πρόσθετο Content Views βρίσκεται σε επηρεαζόμενη έκδοση.
Είναι γνήσιο αυτό το μήνυμα;
Ναι. Πρόκειται για καλόπιστη ειδοποίηση υπεύθυνης δημοσιοποίησης από ανεξάρτητο ερευνητή ασφαλείας. Δεν σας ζητώ χρήματα, κωδικούς ή πρόσβαση στον ιστότοπό σας, και δεν επιχείρησα να εισβάλω σε αυτόν, να εγγραφώ σε αυτόν ή να εκμεταλλευτώ οτιδήποτε.
Το μόνο που έκανα ήταν να δω σελίδες και αρχεία που ο ιστότοπός σας παρέχει σε κάθε επισκέπτη (όπως ακριβώς είναι δημόσια η αρχική σας σελίδα) και να σημειώσω τον αριθμό έκδοσης που δημοσιεύει το πρόσθετο. Μία από τις σελίδες που διάβασα ήταν η τυπική σελίδα εγγραφής του WordPress του ιστότοπού σας, για να δω αν είναι ανοιχτή σε επισκέπτες, και το να τη διαβάσω είναι το μόνο που έκανα με αυτήν. Συγκεκριμένα δεν υπέβαλα εκείνη τη φόρμα, δεν δημιούργησα λογαριασμό, δεν συνδέθηκα, και δεν έστειλα τίποτα στο επηρεαζόμενο χαρακτηριστικό. Τίποτα σε αυτόν τον έλεγχο δεν αγγίζει τα δεδομένα σας, την περιοχή διαχείρισής σας ή οποιοδήποτε ιδιωτικό τμήμα του ιστότοπού σας (περισσότερες λεπτομέρειες παρακάτω, στην ενότητα Τι έκανα και τι δεν έκανα παρακάτω).
Αν θέλετε να επαληθεύσετε ποιος είμαι, δείτε τα στοιχεία επικοινωνίας στο τέλος αυτής της σελίδας και τη σελίδα Σχετικά.
Γιατί έχει σημασία
Το Content Views δημιουργεί πλέγματα, λίστες και κυλιόμενες προβολές άρθρων στον ιστότοπό σας, ώστε να μπορείτε να εμφανίζετε μια φιλτραρισμένη επιλογή άρθρων ή σελίδων χωρίς να γράφετε καθόλου κώδικα. Μέρος του τρόπου με τον οποίο το κάνει αυτό είναι ένας χειριστής αιτημάτων που αποδίδει μια προεπισκόπηση ενός πλέγματος από τις ρυθμίσεις που του δίνονται.
Στις επηρεαζόμενες εκδόσεις, αυτός ο χειριστής ελέγχει ένα token ασφαλείας και σταματά εκεί. Δεν ελέγχει ποτέ αν το άτομο που στέλνει το αίτημα επιτρέπεται να το χρησιμοποιήσει, και το εν λόγω token δεν είναι μυστικό: το πρόσθετο το δημοσιεύει σε κάθε επισκέπτη του ιστότοπου. Ο χειριστής στη συνέχεια κατασκευάζει ένα ερώτημα βάσης δεδομένων από ρυθμίσεις που λαμβάνει απευθείας από το αίτημα. Η συνέπεια είναι ότι κάποιος που κατέχει τίποτα περισσότερο από τον χαμηλότερο σε προνόμια λογαριασμό στον ιστότοπό σας μπορεί να κατευθύνει εκείνο το ερώτημα και να διαβάσει δεδομένα από τη βάση δεδομένων σας που ο λογαριασμός του δεν έχει καμία δουλειά να βλέπει.
Η προϋπόθεση, για να την επαναλάβω επειδή είναι το σημείο που πιθανότατα θα παρεξηγηθεί προς οποιαδήποτε από τις δύο κατευθύνσεις: ένας λογαριασμός, όχι μια ρύθμιση. Δεν χρειάζεται να είναι ενεργοποιημένο τίποτα για να είναι προσβάσιμος ο χειριστής, και δεν υπάρχει καμία ρύθμιση που να βγάζει μια επηρεαζόμενη έκδοση εκτός εύρους. Αυτό που στέκεται ανάμεσα σε μια επηρεαζόμενη εγκατάσταση και αυτό το ζήτημα είναι απλώς το αν κάποιος άλλος εκτός από εσάς μπορεί να συνδεθεί. Σε έναν ιστότοπο όπου οποιοσδήποτε μπορεί να εγγραφεί, αυτό δεν αποτελεί μεγάλο εμπόδιο. Σε έναν ιστότοπο όπου είστε ο μόνος χρήστης, είναι πραγματικό εμπόδιο.
Και η άλλη όψη, που έχει εξίσου μεγάλη σημασία: ένας ιστότοπος με κλειστή τη φόρμα εγγραφής του WordPress δεν είναι εξ αυτού ασφαλής. Οι λογαριασμοί φτάνουν από πολλές διαδρομές, και οποιαδήποτε από αυτές αρκεί.
Περιγράφω αυτό στο επίπεδο που χρειάζεται ένας ιδιοκτήτης ιστότοπου για να δράσει, και όχι περισσότερο. Δεν δημοσιεύω τις λεπτομέρειες που θα επέτρεπαν σε κάποιον να το αναπαραγάγει, και θα σας παρακαλούσα να μην το δοκιμάσετε στον δικό σας ιστότοπο ή σε οποιονδήποτε άλλον. Η ανάγνωση του αριθμού έκδοσής σας, όπως περιγράφεται παρακάτω, σας λέει όλα όσα χρειάζεστε για να αποφασίσετε τι θα κάνετε.
Αν το email μου ανέφερε αυτό το ζήτημα, σημαίνει ότι η έκδοση που δηλώνει ο ιστότοπός σας είναι παλαιότερη από την 4.5. Δεν έλεγξα αν ο συγκεκριμένος ιστότοπός σας είναι εκμεταλλεύσιμος, και δεν μπορώ να δω ποιος έχει λογαριασμούς σε αυτόν. Το μόνο που παρατήρησα είναι η έκδοση, και αν η σελίδα εγγραφής σας εξυπηρετείται σε επισκέπτες.
Επηρεάζομαι;
Καταλήγει σε ένα μόνο ερώτημα: ποια έκδοση του Content Views χρησιμοποιείτε;
Μια σύντομη σημείωση για το ποιο πρόσθετο είναι αυτό, καθώς το όνομα είναι κοινό. Αυτή η
ειδοποίηση αφορά το δωρεάν πρόσθετο που δημοσιεύεται στο WordPress.org, αυτό του οποίου ο φάκελος
είναι content-views-query-and-display-post-page. Ο ίδιος κατασκευαστής πουλάει επίσης μια
ξεχωριστή σειρά Pro. Αν ο φάκελος του πρόσθετού σας είναι αυτός, συνεχίστε την ανάγνωση.
Από την περιοχή διαχείρισης WordPress (έγκυρη πηγή):
- Συνδεθείτε στον πίνακα ελέγχου WordPress σας (συνήθως στη διεύθυνση
yourdomain.com/wp-admin). - Πηγαίνετε στα Πρόσθετα και μετά Εγκατεστημένα πρόσθετα.
- Βρείτε το Content Views – Post Grid & Filter, την καταχώριση της οποίας ο φάκελος είναι
content-views-query-and-display-post-page, και σημειώστε την έκδοση που εμφανίζεται κάτω από το όνομά του.
Από το δημόσιο μανιφέστο (δεν απαιτείται σύνδεση): ανοίξτε
yourdomain.com/wp-content/plugins/content-views-query-and-display-post-page/README.txt
σε ένα πρόγραμμα περιήγησης, και διαβάστε τη γραμμή Stable tag: κοντά στην αρχή. Αυτή είναι
μία από τις δύο δημόσιες πηγές που διάβασα.
Προσέξτε τα κεφαλαία σε αυτό το όνομα αρχείου. Τα πρόσθετα WordPress διανέμουν συμβατικά ένα
πεζό readme.txt, και αυτή είναι η διεύθυνση που πληκτρολογούν οι περισσότεροι από συνήθεια. Τα
πακέτα 4.x αυτού του πρόσθετου διανέμουν το αρχείο ως README.txt με κεφαλαία, οπότε σε έναν
διακομιστή με διάκριση πεζών-κεφαλαίων η πεζή διεύθυνση επιστρέφει 404 και φαίνεται σαν το αρχείο
να μην υπάρχει. Υπάρχει. Δοκιμάστε την ορθογραφία με κεφαλαία πριν βγάλετε οποιοδήποτε
συμπέρασμα.
Από την πηγή της σελίδας σας (δεν απαιτείται σύνδεση): προβάλετε την πηγή της αρχικής σας σελίδας και αναζητήστε τα δικά του front-end αρχεία (assets) του πρόσθετου, ακριβώς σε αυτές τις διαδρομές:
/wp-content/plugins/content-views-query-and-display-post-page/public/assets/js/cv.js?ver=...
/wp-content/plugins/content-views-query-and-display-post-page/public/assets/css/cv.css?ver=...
Ο αριθμός ?ver= που συνοδεύει εκείνα τα αρχεία είναι η ίδια η έκδοση του πρόσθετου. Σε μια
προεπιλεγμένη εγκατάσταση φορτώνονται σε κάθε front-end σελίδα, είτε εμφανίζεται σε αυτήν ένα
πλέγμα άρθρων είτε όχι, οπότε η αρχική σας σελίδα συνήθως αρκεί. Σε πολύ παλιές εγκαταστάσεις τα
ίδια δύο αρχεία ονομάζονται public.js και public.css, και ο ίδιος κανόνας ισχύει για αυτά.
Η παγίδα που πρέπει να αποφύγετε εδώ, και είναι εύκολο να πέσετε σε αυτήν. Αυτό το πρόσθετο
διανέμει ενσωματωμένα αντίγραφα πολλών βιβλιοθηκών τρίτων κατασκευαστών μέσα στον δικό του
φάκελο πρόσθετου, και καθεμία από αυτές φέρει τη δική της, εντελώς άσχετη αρίθμηση έκδοσης. Η
πηγή της σελίδας σας μπορεί να δείχνει το Bootstrap στην 3.3.5 ή στην 3.3.0, το Select2 στην
3.4.5, το html5shiv στην 3.7.0, το respond.js στην 1.4.2, και το bootstrap-paginator στην 0.5,
όλα σε διαδρομές που ξεκινούν με τον φάκελο του πρόσθετου Content Views. Ένας διαχειριστής που
αναζητά στην πηγή της σελίδας τον φάκελο του πρόσθετου και διαβάζει την πρώτη τιμή ?ver= που
εμφανίζεται μπορεί εύκολα να καταλήξει να πιστεύει ότι το πρόσθετο είναι στην «3.3.5», και μετά
να απορεί πώς αυτό συγκρίνεται με την 4.5. Δεν συγκρίνεται καθόλου. Ένας αριθμός όπως 3.3.5 ή 0.5
πάνω σε μια διαδρομή bootstrap ή select2 είναι η έκδοση ενός εντελώς διαφορετικού λογισμικού.
Διαβάστε την έκδοση μόνο από τα cv.js ή cv.css (ή τα public.js / public.css σε μια πολύ
παλιά εγκατάσταση), και αγνοήστε κάθε άλλο ?ver= στη σελίδα.
Αν δεν καταφέρετε καθόλου να διαβάσετε έναν αναγνώσιμο αριθμό από την πηγή της σελίδας, αυτό είναι
συνηθισμένο και δεν αποτελεί ένδειξη τίποτα: τα πρόσθετα προσωρινής αποθήκευσης (caching) και
βελτιστοποίησης αφαιρούν συχνά την τιμή ?ver= από τις διευθύνσεις των assets, ή συνδυάζουν τα
αρχεία σε ένα ενιαίο script. Σε αυτή την περίπτωση, το README.txt είναι η αξιόπιστη δημόσια
ανάγνωση, και η οθόνη διαχείρισης στον πρώτο έλεγχο έχει πάντα την απάντηση.
Στη συνέχεια εφαρμόστε αυτόν τον κανόνα, σημειώνοντας ότι οι εκδόσεις συγκρίνονται αριθμητικά, όχι αλφαβητικά, οπότε η 4.10 θα ήταν νεότερη από την 4.9 παρόλο που φαίνεται μικρότερη ως κείμενο:
- Οτιδήποτε παλαιότερο από την 4.5: επηρεάζεται. Ενημερώστε. Δεν υπάρχει κάποιο όριο κάτω από το οποίο μια παλαιότερη κυκλοφορία ξαναγίνεται ασφαλής.
- 4.5 ή νεότερη: ήδη διορθωμένη όσον αφορά αυτό το ζήτημα. Η τρέχουσα κυκλοφορία τη στιγμή που γράφονται αυτά είναι η 4.5.1, και η λήψη της πιο πρόσφατης διαθέσιμης έκδοσης είναι η καλύτερη κίνηση.
Πώς να αναβαθμίσετε
Το πρόσθετο είναι δωρεάν, εξακολουθεί να δημοσιεύεται και συντηρείται ενεργά, οπότε η διόρθωση είναι μια συνηθισμένη ενημέρωση. Ο ασφαλέστερος δρόμος είναι να ενημερώσετε μέσα από το ίδιο το WordPress, αφού πρώτα πάρετε αντίγραφο ασφαλείας:
- Πάρτε αντίγραφο ασφαλείας του ιστότοπού σας (αρχεία και βάση δεδομένων) πριν κάνετε αλλαγές. Οι περισσότεροι πάροχοι φιλοξενίας προσφέρουν αντίγραφα με ένα κλικ, ή χρησιμοποιήστε ένα πρόσθετο αντιγράφων ασφαλείας για WordPress.
- Στην περιοχή διαχείρισης WordPress, πηγαίνετε στον Πίνακα ελέγχου και μετά Ενημερώσεις, ή στα Πρόσθετα και μετά Εγκατεστημένα πρόσθετα. Αν εμφανίζεται καταχωρισμένη μια ενημέρωση για το Content Views, εγκαταστήστε την από εδώ.
- Αν προτιμάτε τη γραμμή εντολών, το WP-CLI κάνει το ίδιο:
wp plugin update content-views-query-and-display-post-page(η εντολή χρησιμοποιεί το όνομα φακέλου, όχι το εμφανιζόμενο όνομα). - Αν δεν εμφανίζεται καμία ενημέρωση, μπορείτε να πάρετε την τελευταία κυκλοφορία απευθείας από τη σελίδα του πρόσθετου στον κατάλογο του WordPress.org, Content Views – Post Grid & Filter, και να ενημερώσετε μέσω Πρόσθετα και μετά Προσθήκη νέου πρόσθετου και μετά Μεταφόρτωση πρόσθετου.
- Μετά την ενημέρωση, επιβεβαιώστε τον νέο αριθμό έκδοσης (4.5.1 ή νεότερη) με τα παραπάνω βήματα, και ελέγξτε ότι τα πλέγματα άρθρων σας και τυχόν φίλτρα πάνω τους εξακολουθούν να εμφανίζονται κανονικά.
Όσο βρίσκεστε εκεί, αξίζει να επιβεβαιώσετε ότι ο πυρήνας του WordPress και τα υπόλοιπα πρόσθετά σας είναι ενημερωμένα, καθώς η ίδια αρχή ισχύει για όλα τους.
Μετά την ενημέρωση
Η ενημέρωση στην 4.5.1 ή νεότερη κλείνει το ζήτημα, και για τους περισσότερους ιστότοπους αυτό είναι όλη η εργασία. Αυτή η σελίδα είναι μια προληπτική ειδοποίηση, όχι μια αναφορά περιστατικού: δεν έχω καμία ορατότητα στο αν συνέβη κάτι στον ιστότοπό σας, και δεν κοίταξα.
Αξίζει να κάνετε δύο μικρά πράγματα όσο η ενημέρωση είναι πρόσφατη:
- Επιβεβαιώστε ότι η έκδοση πράγματι άλλαξε, χρησιμοποιώντας όποιον από τους παραπάνω ελέγχους ήταν ευκολότερος, και φορτώστε μια σελίδα που εμφανίζει ένα από τα πλέγματα άρθρων σας για να βεβαιωθείτε ότι εξακολουθεί να αποδίδεται σωστά.
- Αν είχατε ανοιχτή την εγγραφή του WordPress και δεν τη χρειάζεστε, σκεφτείτε να την κλείσετε. Αυτό είναι γενική υγιεινή και όχι διόρθωση για αυτό το ζήτημα, το οποίο η ενημέρωση έχει ήδη αντιμετωπίσει, και αξίζει να θυμάστε ότι άλλα πρόσθετα στον ιστότοπό σας ενδέχεται να δημιουργούν λογαριασμούς ανεξάρτητα από αυτό.
Θα παρατηρήσετε ότι δεν υπάρχει σε αυτή τη σελίδα μια λίστα ελέγχου «υποθέστε ότι έχετε παραβιαστεί», και αυτό είναι σκόπιμο, όχι παράλειψη. Αυτό που αποφέρει αυτό το ζήτημα είναι μια ανάγνωση βάσης δεδομένων προσβάσιμη από έναν λογαριασμό χαμηλών προνομίων. Δεν παραδίδει σε κανέναν λογαριασμό διαχειριστή και δεν εκτελεί κώδικα στον διακομιστή σας, οπότε ο έλεγχος λογαριασμών διαχειριστή και η άσκηση εναλλαγής κωδικών πρόσβασης που συνιστώ μετά από ένα ελάττωμα κατηγορίας κατάληψης δεν θα ήταν εδώ ανάλογα. Ενημερώστε, επιβεβαιώστε, και συνεχίστε.
Τι έκανα και τι δεν έκανα
Για πλήρη διαφάνεια σχετικά με τον έλεγχο πίσω από το email μου, εδώ είναι το σύνολό του. Διάβασα σελίδες και αρχεία που ο ιστότοπός σας παρέχει ήδη σε κάθε επισκέπτη:
- την αρχική σας σελίδα, και τις διευθύνσεις των assets που είναι γραμμένες σε αυτήν·
- το δημόσιο αρχείο
README.txtτου πρόσθετου, μέσα στοwp-content/plugins/content-views-query-and-display-post-page/· - την τυπική σελίδα εγγραφής του WordPress του ιστότοπού σας, στη διεύθυνση
/wp-login.php?action=register, για να δω αν είναι ανοιχτή σε επισκέπτες. Πρόκειται για μια δημοσιευμένη σελίδα, και το να τη διαβάσω είναι το μόνο που έκανα.
Δεν υπέβαλα εκείνη τη φόρμα εγγραφής, δεν δημιούργησα λογαριασμό, και δεν συνδέθηκα στον ιστότοπό σας. Δεν έστειλα τίποτα στο επηρεαζόμενο χαρακτηριστικό. Αυτό το τελευταίο σημείο είναι εκείνο που θέλω να είναι πιο σαφές από όλα: το ζήτημα είναι ένα σημείο έγχυσης SQL (SQL-injection sink), και το να ρίξετε ένα payload στη βάση δεδομένων κάποιου άλλου δεν είναι κάτι που κάνει αυτό το εγχείρημα, ούτε σε εργαστήριο ούτε σε παραγωγή. Τίποτα δεν υποβλήθηκε, δεν δοκιμάστηκε και δεν αξιοποιήθηκε, και τίποτα δεν άγγιξε την περιοχή διαχείρισης WordPress, τη βάση δεδομένων σας, ή οποιοδήποτε ιδιωτικό τμήμα του ιστότοπου.
Επίσης δεν δημοσιεύω σκόπιμα τις λεπτομέρειες που θα βοηθούσαν κάποιον να δράσει πάνω σε αυτό το ζήτημα. Η παραπάνω περιγραφή σταματά στο επίπεδο που χρειάζεται ένας ιδιοκτήτης ιστότοπου, και δεν παραπέμπω σε κανέναν κώδικα απόδειξης εκμετάλλευσης.
Πρόκειται για παρατήρηση βασισμένη στην έκδοση: ο ιστότοπός σας δηλώνει έκδοση παλαιότερη από την 4.5. Δεν αποτελεί δήλωση ότι ο ιστότοπός σας ήταν εκμεταλλεύσιμος τη στιγμή που έκανα τον έλεγχο. Επειδή η χρήση αυτού του ζητήματος απαιτεί κάποιος να είναι συνδεδεμένος, και δεν μπορώ να δω ποιος κατέχει λογαριασμούς στον ιστότοπό σας, ένας ιστότοπος σε εκείνο το εύρος μπορεί κάλλιστα να μην είναι καθόλου εκτεθειμένος, και ένας ιστότοπος σε εκείνο το εύρος μπορεί επίσης να προστατεύεται ήδη με άλλα μέσα, όπως ένα τείχος προστασίας εφαρμογών ιστού ή μια διόρθωση που έχει ενσωματωθεί εκ των υστέρων (backported fix).
Δεν έχω webmaster / έχω κολλήσει
Αν δεν συντηρείτε εσείς τον ιστότοπο, προωθήστε αυτή τη σελίδα σε όποιον τον συντηρεί (τον προγραμματιστή σας, την εταιρεία σας ή τον πάροχο φιλοξενίας). Θα αναγνωρίσουν γρήγορα τα παραπάνω βήματα.
Αν συντηρείτε τον ιστότοπο μόνοι σας και κολλήσετε, ευχαρίστως να σας κατευθύνω χωρίς κόστος. Επικοινωνήστε με τα στοιχεία παρακάτω.
Επικοινωνία
Evan Harris, ερευνητής ασφαλείας
- Email: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Επικοινωνώ για ζητήματα σαν αυτό αποκλειστικά για να βοηθήσω τους διαχειριστές να ασφαλίσουν τους ιστότοπούς τους. Αν προτιμάτε να μην ξαναέρθω σε επαφή, απλώς ενημερώστε με και θα το σεβαστώ.
Αναφορές
Επίσημες ανακοινώσεις και παρακολούθηση
Κατασκευαστής / πρόσθετο