Apache Struts: Κρίσιμες ευπάθειες επιτρέπουν επιθέσεις RCE

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

✂️ Σύνοψη άρθρου

  • Η επίσημη ομάδα του Apache Struts εξέδωσε διορθώσεις στις εκδόσεις 7.4.0 και 6.12.0 για τέσσερα διαφορετικά ελαττώματα ασφαλείας.
  • Το κρισιμότερο ζήτημα αφορά OGNL injection στον legacy action mapper, ενώ το REST plugin υποφέρει από ανεξέλεγκτη κατανάλωση (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- ή τραπεζικές εφαρμογές, αυτό το σφάλμα παραβιάζει άμεσα βασικούς κανονισμούς προστασίας απορρήτου όπως το 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 θεωρείται επικίνδυνο για το απόρρητο;

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

Dimitris Marizas
Dimitris Marizashttps://technoid.gr
Γράφω για τεχνολογία από τη σκοπιά του ανθρώπου που τη χρησιμοποιεί καθημερινά — όχι από αίθουσες συνεδρίων. Ασχολούμαι με δίκτυα, δορυφορικό internet, smartphones και ψηφιακές υπηρεσίες, με έμφαση στο τι σημαίνουν αυτά πρακτικά για τον Έλληνα χρήστη. Πίσω από κάθε άρθρο κρύβεται ώρες ανάλυσης, δοκιμών και — όταν χρειάζεται — κριτικής σε ό,τι το marketing προσπαθεί να κρύψει.

ΑΦΗΣΤΕ ΜΙΑ ΑΠΑΝΤΗΣΗ

εισάγετε το σχόλιό σας!
παρακαλώ εισάγετε το όνομά σας εδώ