Σοβαρά κενά ασφαλείας απειλούν ξανά εφαρμογές που τρέχουν πάνω στο Apache Struts. Τέσσερις νέες ευπάθειες επιτρέπουν από απομακρυσμένη εκτέλεση κώδικα (RCE) μέχρι εξάντληση μνήμης και διαρροή δεδομένων μεταξύ χρηστών. Αν διαχειρίζεσαι enterprise υποδομές Java, η άμεση αναβάθμιση αποτελεί μονόδρομο.
- Η επίσημη ομάδα του Apache Struts εξέδωσε διορθώσεις στις εκδόσεις 7.4.0 και 6.12.0 για τέσσερα διαφορετικά ελαττώματα ασφαλείας.
- Το κρισιμότερο ζήτημα αφορά OGNL injection στον legacy action mapper, ενώ το REST plugin υποφέρει από ανεξέλεγκτη κατανάλωση RAM (DoS).
- Τα προσωρινά workarounds περιλαμβάνουν ρυθμίσεις σε reverse proxies και converters, αλλά μόνο το patch εξασφαλίζει πλήρη προστασία.
Ο εφιάλτης του OGNL επιστρέφει
Το πρώτο και πιο επικίνδυνο κενό ασφαλείας είναι το CVE-2026-104711. Αφορά τη λειτουργία του legacy RESTful action mapper, ο οποίος απομονώνει ονόματα ενεργειών και παραμέτρους απευθείας από τα HTTP URLs.
Όταν ένας εισβολέας στείλει ένα κακόβουλα διαμορφωμένο αίτημα, μπορεί να εισάγει εκφράσεις OGNL (Object-Graph Navigation Language). Αυτό οδηγεί σε Remote Code Execution (RCE), επιτρέποντας στον επιτιθέμενο να πάρει τον πλήρη έλεγχο του υποκείμενου διακομιστή.
Όπως επισημαίνει το επίσημο advisory του Apache Foundation, επηρεάζονται οι σειρές Struts 2.0.0 έως 2.3.37, 2.5.0 έως 2.5.33 και 6.0.0 έως 6.11.0. Η έκδοση 7 προστατεύεται από προεπιλογή, εκτός αν κάποιος διαχειριστής έχει απενεργοποιήσει σκόπιμα το OGNL allowlist.
Εξάντληση μνήμης και DoS επιθέσεις
Δύο από τις υπόλοιπες ευπάθειες χτυπούν τη διαθεσιμότητα των συστημάτων σου. Το CVE-2026-104712 επιτρέπει σε αιτήματα μικρού μεγέθους να προκαλέσουν δυσανάλογα τεράστια κατανάλωση πόρων μέσω του τύπου java.math.BigDecimal.
Στην πράξη, ένας εξωτερικός χρήστης χωρίς πιστοποίηση μπορεί με ελάχιστο bandwidth να εξαντλήσει την επεξεργαστική ισχύ (CPU) του server. Η σχετική τεχνική αναφορά του Apache υποδεικνύει ότι προσωρινή λύση προσφέρει ένας custom converter στο αρχείο struts-conversion.properties.
Παράλληλα, το CVE-2026-104713 στο REST plugin διαβάζει ολόκληρο το σώμα ενός αιτήματος απευθείας στη μνήμη heap χωρίς όριο μεγέθους. Ένα και μόνο υπερμεγέθες HTTP POST request αρκεί για να ρίξει το JVM με OutOfMemoryError.
Διαρροή ευαίσθητων δεδομένων χωρίς επίθεση
Η τέταρτη ευπάθεια, το CVE-2026-104714, είναι εξαιρετικά ύπουλη γιατί δεν απαιτεί καν κακόβουλη πρόθεση για να προκαλέσει ζημιά. Προκύπτει από κοινόχρηστους localized formatters κατά τη διαχείριση ημερομηνιών και ώρας σε πολυνηματικό περιβάλλον.
Όταν δύο χρήστες υποβάλλουν ταυτόχρονα αιτήματα, τα δεδομένα του ενός μπορεί να εμφανιστούν στην οθόνη του άλλου. Η τεκμηρίωση για το CVE-2026-104714 καθιστά σαφές ότι απλή καθημερινή κυκλοφορία αρκεί για να πυροδοτήσει σφάλματα απεικόνισης ή διαρροή προσωπικών στοιχείων.
Αν λειτουργείς πλατφόρμες e-commerce ή τραπεζικές εφαρμογές, αυτό το σφάλμα παραβιάζει άμεσα βασικούς κανονισμούς προστασίας απορρήτου όπως το GDPR. Η διαχείριση ημερομηνιών πριν από το string interpolation αποτελεί το μόνο άμεσο ημίμετρο.
| CVE Identifier | Είδος Απειλής | Σοβαρότητα | Επηρεαζόμενες Εκδόσεις |
|---|---|---|---|
| CVE-2026-104711 | OGNL Remote Code Execution | Moderate / High RCE | 2.x, 6.0.0 – 6.11.0, 7.0.0 – 7.3.0 |
| CVE-2026-104712 | CPU Exhaustion (BigDecimal) | Moderate | 2.5.14 – 2.5.33, 6.x, 7.0.0 – 7.3.0 |
| CVE-2026-104713 | Memory Exhaustion (REST Plugin) | Important | 2.1.8 – 2.5.33, 6.x, 7.0.0 – 7.3.0 |
| CVE-2026-104714 | Race Condition / Data Leak | Moderate | Έως 6.11.0 και 7.3.0 |
Άμυνα σε επίπεδο δικτύου και WAF
Αν ο οργανισμός σου δεν μπορεί να κάνει deployment άμεσα στα νέα JAR packages, πρέπει να στήσεις άμυνες στην περίμετρο. Ένα σωστά ρυθμισμένο Web Application Firewall (WAF) μπορεί να κόψει τα περισσότερα κακόβουλα payloads.
Για το REST DoS (CVE-2026-104713), επιβάλλεται να ορίσεις ανώτατο όριο στο σώμα του αιτήματος στο επίπεδο του Nginx ή του HAProxy. Το νέο patch του Apache θέτει όριο στους 2.097.152 χαρακτήρες, τιμή που μπορείς να ορίσεις άμεσα στο client_max_body_size.
Για enterprise περιβάλλοντα με dedicated infrastructure, η παρακολούθηση της ασφάλειας δικτύου πρέπει να συνδυάζεται με ολοκληρωμένο hardening σε Linux servers. Επίσης, αν διαχειρίζεσαι hybrid cloud περιβάλλοντα, έλεγξε τις ρυθμίσεις σε ingress controllers για να αποφύγεις ανεπιθύμητα bottlenecks.
Η άποψή μας στο TechNoid
Το Apache Struts κουβαλάει μια σκοτεινή κληρονομιά που πολλοί sysadmins θα προτιμούσαν να ξεχάσουν. Το γεγονός ότι το OGNL συνεχίζει να παράγει ελαττώματα απομακρυσμένης εκτέλεσης κώδικα αποδεικνύει ότι το technical debt του framework παραμένει ενεργό.
Από την άλλη πλευρά, η κοινότητα αντέδρασε επαγγελματικά προσφέροντας patches τόσο για τη νεότερη σειρά 7.x όσο και για τη σειρά συντήρησης 6.x. Η εισαγωγή αυστηρών ορίων μεγέθους στο REST plugin έπρεπε να έχει γίνει χρόνια πριν, αλλά τουλάχιστον κλείνει μια επικίνδυνη πόρτα DoS.
Αν έχεις εφαρμογές σε παραγωγή με Struts, μην περιμένεις να δεις PoC exploits στο διαδίκτυο. Αναβάθμισε άμεσα σε Struts 7.4.0 ή 6.12.0 και απόσυρε οριστικά παρωχημένες λειτουργίες όπως ο legacy RESTful mapper.
Συχνές Ερωτήσεις για τα Κενά Ασφαλείας του Apache Struts
Ποιες εκδόσεις πρέπει να εγκαταστήσω άμεσα;
Πρέπει να περάσεις άμεσα στο Apache Struts 7.4.0 ή στο Struts 6.12.0 αν η υποδομή σου παραμένει στη σειρά συντήρησης 6.x.
Υπάρχουν στοιχεία για ενεργή εκμετάλλευση των ευπαθειών;
Μέχρι στιγμής δεν έχουν καταγραφεί ενεργές επιθέσεις στα συστήματα, αλλά η δημοσίευση των λεπτομερειών επιταχύνει τη δημιουργία exploits.
Επηρεάζεται η εφαρμογή μου αν χρησιμοποιεί το σύγχρονο REST plugin;
Ναι, επηρεάζεται από το CVE-2026-104713 λόγω έλλειψης ορίου στο μέγεθος σώματος αιτήματος, αλλά γλιτώνει το OGNL injection του legacy mapper.
Πώς μπορώ να προστατευτώ άμεσα χωρίς να κάνω compile νέο κώδικα;
Μπορείς να περιορίσεις το μέγεθος HTTP request body στα 2MB μέσω του reverse proxy σου και να φιλτράρεις OGNL χαρακτήρες στο WAF.
Γιατί το CVE-2026-104714 θεωρείται επικίνδυνο για το απόρρητο;
Επειδή επιτρέπει σε ταυτόχρονες συνεδρίες χρηστών να μπερδέψουν τιμές ημερομηνιών, εμφανίζοντας ευαίσθητα δεδομένα ενός χρήστη στην οθόνη κάποιου άλλου.

