Ανακάλυψαν μια ευπάθεια στο Spring Framework

Πρόσφατα τα νέα το έσπασαν εντοπίστηκε μια κρίσιμη ευπάθεια τύπου zero day στην ενότητα Το Spring Core αποστέλλεται ως μέρος του Spring Framework, το οποίο επιτρέπει σε έναν απομακρυσμένο εισβολέα χωρίς έλεγχο ταυτότητας να εκτελέσει τον κώδικά του στον διακομιστή.

Σύμφωνα με ορισμένες εκτιμήσεις, η ενότητα Spring Core χρησιμοποιείται στο 74% των εφαρμογών Java. Ο κίνδυνος ευπάθειας μειώνεται από το γεγονός ότι μόνο οι εφαρμογές που χρησιμοποιήστε τον σχολιασμό "@RequestMapping" για ναΣυνδέοντας τους χειριστές αιτημάτων και χρησιμοποιώντας τη δέσμευση παραμέτρων φόρμας ιστού στη μορφή «όνομα=τιμή» (POJO, Απλό αντικείμενο παλιάς Java), αντί για JSON/XML, είναι επιρρεπείς σε επιθέσεις. Δεν είναι ακόμη σαφές ποιες εφαρμογές και πλαίσια Java επηρεάζονται από το ζήτημα.

Αυτή η ευπάθεια, που ονομάζεται "Spring4Shell", εκμεταλλεύεται την ένεση κλάσης που οδηγεί σε πλήρη RCE και είναι πολύ σοβαρή. Το όνομα "Spring4Shell" επιλέχθηκε επειδή το Spring Core είναι μια πανταχού παρούσα βιβλιοθήκη, παρόμοια με το log4j που προκάλεσε την περίφημη ευπάθεια Log4Shell.

Πιστεύουμε ότι οι χρήστες που εκτελούν JDK έκδοση 9 και μεταγενέστερες είναι ευάλωτοι σε επίθεση RCE. Όλες οι εκδόσεις του Spring Core επηρεάζονται.

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

Η εκμετάλλευση της ευπάθειας είναι δυνατή μόνο όταν χρησιμοποιείτε Java/JDK 9 ή νεότερη έκδοση. Η ευπάθεια αποκλείει τη μαύρη λίστα των πεδίων "class", "module" και "classLoader" ή τη χρήση μιας ρητής λίστας επιτρεπόμενων πεδίων.

το πρόβλημα οφείλεται στην ικανότητα παράκαμψης της προστασίας έναντι της ευπάθειας CVE-2010-1622, Διορθώθηκε στο Spring Framework το 2010 και συσχετίστηκε με την εκτέλεση του προγράμματος χειρισμού classLoader κατά την ανάλυση των παραμέτρων αιτήματος.

Η λειτουργία του exploit περιορίζεται στην αποστολή αιτήματος γμε τις παραμέτρους "class.module.classLoader.resources.context.parent.pipeline.first.*", η επεξεργασία των οποίων, όταν χρησιμοποιείται το "WebappClassLoaderBase", οδηγεί σε κλήση στην κλάση AccessLogValve.

Η καθορισμένη κλάση σάς επιτρέπει να ρυθμίσετε το καταγραφικό για να δημιουργήσετε ένα αυθαίρετο αρχείο jsp στο ριζικό περιβάλλον του Apache Tomcat και να γράψετε τον κώδικα που καθορίζεται από τον εισβολέα σε αυτό το αρχείο. Το αρχείο που δημιουργήθηκε είναι διαθέσιμο για απευθείας αιτήματα και μπορεί να χρησιμοποιηθεί ως κέλυφος ιστού. Για να επιτεθείτε σε μια ευάλωτη εφαρμογή στο περιβάλλον Apache Tomcat, αρκεί να στείλετε ένα αίτημα με συγκεκριμένες παραμέτρους χρησιμοποιώντας το βοηθητικό πρόγραμμα curl.

Το πρόβλημα που εξετάζεται στο Spring Core δεν πρέπει να συγχέεται με τα πρόσφατα εντοπισμένα τρωτά σημεία CVE-2022-22963 και CVE-2022-22950. Το πρώτο ζήτημα επηρεάζει το πακέτο Spring Cloud και επιτρέπει επίσης την επίτευξη απομακρυσμένης εκτέλεσης κώδικα (exploit). Το CVE-2022-22963 είναι σταθερό στις εκδόσεις Spring Cloud 3.1.7 και 3.2.3.

Το δεύτερο τεύχος CVE-2022-22950 υπάρχει στο Spring Expression, μπορεί να χρησιμοποιηθεί για την εκκίνηση επιθέσεων DoS και έχει διορθωθεί στο Spring Framework 5.3.17. Αυτά είναι θεμελιωδώς διαφορετικά τρωτά σημεία. Οι προγραμματιστές του Spring Framework δεν έχουν κάνει ακόμη καμία δήλωση σχετικά με τη νέα ευπάθεια και δεν έχουν κυκλοφορήσει κάποια επιδιόρθωση.

Ως προσωρινό μέτρο προστασίας, συνιστάται να χρησιμοποιείτε μια μαύρη λίστα με μη έγκυρες παραμέτρους ερωτήματος στον κώδικά σας.

Ακόμα δεν είναι σαφές πόσο καταστροφικές μπορεί να είναι οι συνέπειες σχετικά με το πρόβλημα που εντοπίστηκε και εάν οι επιθέσεις θα είναι τόσο μαζικές όσο στην περίπτωση της ευπάθειας στο Log4j 2. Η ευπάθεια έχει την κωδική ονομασία Spring4Shell, CVE-2022-22965 και έχουν κυκλοφορήσει ενημερώσεις Spring Framework 5.3.18 και 5.2.20 για την αντιμετώπιση ευπάθειας.

Μια ενημέρωση κώδικα είναι πλέον διαθέσιμη από τις 31 Μαρτίου 2022 στις πιο πρόσφατες εκδόσεις Spring που κυκλοφόρησαν 5.3.18 και 5.2.20. Συνιστούμε σε όλους τους χρήστες να κάνουν αναβάθμιση. Για όσους δεν μπορούν να αναβαθμίσουν, είναι δυνατοί οι ακόλουθοι μετριασμούς:

Με βάση την ανάρτηση του Praetorian που επιβεβαιώνει την παρουσία ενός RCE στον Spring Core, η επί του παρόντος προτεινόμενη προσέγγιση είναι να επιδιορθώσετε το DataBinder προσθέτοντας μια μαύρη λίστα με ευάλωτα μοτίβα πεδίων που απαιτούνται για εκμετάλλευση.

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


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.