Οι υπεύθυνοι για τη συντήρηση του Jenkins, του ανοιχτού κώδικα λογισμικού αυτοματισμού συνεχούς ενοποίησης/συνεχούς παράδοσης και ανάπτυξης (CI/CD), έχουν διορθώσει ενέα προβλήματα ασφαλείας.

Μεταξύ αυτών περιλαμβάνεται και ένα κρίσιμο σφάλμα, το οποίο, εάν εκμεταλλευτεί με επιτυχία από τους χάκερς, θα μπορούσε να οδηγήσει σε απομακρυσμένη εκτέλεση κώδικα (RCE).
Το πρόβλημα που αναφέρεται με το αναγνωριστικό CVE CVE-2024-23897, περιγράφεται ως μια ευπάθεια ανάγνωσης αυθαίρετου αρχείου μέσω της ενσωματωμένης διεπαφής γραμμής εντολών (CLI).

Δείτε επίσης: Atlassian: Κρίσιμη ευπάθεια επηρεάζει παλιότερες εκδόσεις Confluence

“Σύμφωνα με τους συντηρητές, το Jenkins χρησιμοποιεί τη βιβλιοθήκη args4j για να αναλύει τις εντολές που ορίζονται και τις επιλογές του ελεγκτή Jenkins κατά την εκτέλεση εντολών CLI. Αυτή η ανακοίνωση έγινε την Τετάρτη.”

Ο συγκεκριμένος αναλυτής εντολών διαθέτει μια λειτουργία που αντικαθιστά τον χαρακτήρα @, ακολουθούμενο από μια διαδρομή αρχείου, που ορίζει τα περιεχόμενα του αρχείου (expandAtFiles). Αυτή η δυνατότητα είναι ενεργοποιημένη από προεπιλογή και δεν απενεργοποιείται στο Jenkins 2.441 και παλαιότερες εκδόσεις, ενώ το LTS 2.426.2 και παλαιότερες δεν το απενεργοποιούν.

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

Αν και οι χρήστες με άδεια “Συνολική/Ανάγνωση” έχουν πρόσβαση σε ολόκληρα αρχεία, οι χρήστες χωρίς αυτή την άδεια μπορούν να διαβάσουν μόνο τις τρεις πρώτες γραμμές των αρχείων, όπως ορίζουν οι εντολές του CLI.

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

Διαβάστε επίσης: Apple: Διορθώνει την πρώτη zero-day ευπάθεια για φέτος

  • Απομακρυσμένη εκτέλεση κώδικα μέσω Resource Root URLs
  • Απομακρυσμένη εκτέλεση κώδικα μέσω cookie “Remember me”.
  • Απομακρυσμένη εκτέλεση κώδικα μέσω αποθηκευμένων επιθέσεων δέσμης ενεργειών μεταξύ τοποθεσιών (XSS) μέσω αρχείων καταγραφής κατασκευής
  • Απομακρυσμένη εκτέλεση κώδικα μέσω παράκαμψης προστασίας CSRF
  • Αποκρυπτογράφηση των μυστικών αρχείων που είναι αποθηκευμένα στο Jenkins
  • Διαγραφή οποιουδήποτε στοιχείου στο Jenkins
  • Κατεβάστε ένα Java heap dump

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

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

Ο αναλυτής ασφαλείας Yaniv Nizry ανέφερε πως εντόπισε ένα ελάττωμα το οποίο διορθώθηκε στο Jenkins 2.442, LTS 2.426.3 με την απενεργοποίηση της δυνατότητας ανάλυσης εντολών.

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

Δείτε περισσότερα: GitHub: Προχώρησε σε key rotation λόγω ευπάθειας που εξέθετε credentials

Η αναβάθμιση έρχεται σχεδόν ένα χρόνο μετά την αντιμετώπιση του Jenkins με ένα ζευγάρι σοβαρών ευπαθειών ασφαλείας που ονομάστηκαν CorePlague (CVE-2023-27898 και CVE-2023-27905) και θα μπορούσαν να οδηγήσουν σε εκτέλεση κώδικα σε στοχευμένα συστήματα.

Πηγή: thehackernews.com