Εάν γίνουν αντικείμενο εκμετάλλευσης, αυτά τα ελαττώματα μπορούν να επιτρέψουν στους εισβολείς να αποκτήσουν μη εξουσιοδοτημένη πρόσβαση σε ευαίσθητες πληροφορίες ή γενικά να προκαλέσουν προβλήματα
ο έκδοση νέων επιδιορθώσεων συντήρησης Git v2.40.1, μαζί με εκδόσεις συντήρησης για προηγούμενες εκδόσεις v2.39.3, v2.38.5, v2.37.7, v2.36.6, v2.35.8,
v2.34.8, v2.33.8, v2.32.7, v2.31.8 και v2.30.9, επειδή κυκλοφόρησαν πληροφορίες ότι εντοπίστηκαν πέντε ευπάθειες στο Git.
Η έκδοση αυτών των εκδόσεων συντήρησης προορίζονται για την αντιμετώπιση εντοπισμένων ζητημάτων ασφάλειας όπως CVE-2023-25652, CVE-2023-25815 και CVE-2023-29007.
Σχετικά με τα τρωτά σημεία του Git
Τρωτό Το CVE-2023-29007 επιτρέπει την αντικατάσταση της διαμόρφωσης στο αρχείο διαμόρφωσης $GIT_DIR/config, το οποίο μπορεί να χρησιμοποιηθεί για την εκτέλεση κώδικα στο σύστημα καθορίζοντας διαδρομές προς εκτελέσιμα αρχεία στις οδηγίες core.pager, core.editor και core.sshCommand.
Τρωτό οφείλεται σε λογικό σφάλμα λόγω πολύ μεγάλων τιμών διαμόρφωσης μπορούν να αντιμετωπιστούν ως η αρχή μιας νέας ενότητας μετονομάζοντας ή αφαιρώντας μια ενότητα από ένα αρχείο διαμόρφωσης.
Στην πράξη, η αντικατάσταση των τιμών εκμετάλλευσης μπορεί να επιτευχθεί με τον καθορισμό πολύ μεγάλων διευθύνσεων URL υπομονάδας που αποθηκεύονται στο αρχείο $GIT_DIR/config κατά την προετοιμασία. Αυτές οι διευθύνσεις URL μπορούν να ερμηνευθούν ως νέες διαμορφώσεις όταν προσπαθείτε να τις αφαιρέσετε μέσω του "git submodule deinit".
Μια άλλη ευπάθεια είναι CVE-2023-25652 που επιτρέπει την αντικατάσταση του περιεχομένου των αρχείων εκτός του δέντρου εργασίας κατά την επεξεργασία ειδικά σχεδιασμένων patches με την εντολή "git εφαρμογή -- απόρριψη«. Εάν προσπαθήσετε να εκτελέσετε μια κακόβουλη ενημέρωση κώδικα με την εντολή "ισχύουν» που επιχειρεί να γράψει σε ένα αρχείο μέσω συμβολικού συνδέσμου, η λειτουργία θα απορριφθεί.
Από την πλευρά του, η ευπάθεια CVE-2023-25815: όταν το Git μεταγλωττίζεται με υποστήριξη προθέματος χρόνου εκτέλεσης και εκτελείται χωρίς μεταφρασμένα μηνύματα, εξακολουθούσε να χρησιμοποιεί τον μηχανισμό gettext για να εμφανίζει μηνύματα, τα οποία στη συνέχεια δυνητικά αναζήτησαν μεταφρασμένα μηνύματα σε απροσδόκητα μέρη. Αυτό επέτρεψε την κακόβουλη δημοσίευση παραποιημένων μηνυμάτων.
Στο Git 2.39.1, η προστασία από την παραβίαση συμβολικών συνδέσμων έχει επεκταθεί για να μπλοκάρει ενημερώσεις κώδικα που δημιουργούν συμβολικούς συνδέσμους και επιχειρούν να γράψουν μέσω αυτών. Η ουσία της εν λόγω ευπάθειας είναι ότι το Git δεν έλαβε υπόψη ότι ο χρήστης μπορεί να εκτελέσει την εντολή "git apply – reject" να γράψει τα απορριφθέντα μέρη της ενημέρωσης κώδικα ως αρχεία με την επέκταση ".rej" και ο εισβολέας μπορεί να χρησιμοποιήσει αυτή τη λειτουργία για να γράψει το περιεχόμενο σε έναν αυθαίρετο κατάλογο, στο βαθμό που το επιτρέπουν τα τρέχοντα δικαιώματα πρόσβασης.
Επιπλέον, Διορθώθηκαν τρία τρωτά σημεία που εμφανίζονται μόνο στα Windows:
- CVE-2023-29012: (αναζητά το εκτελέσιμο doskey.exe στον κατάλογο εργασίας του αποθετηρίου κατά την εκτέλεση της εντολής "Git CMD", η οποία επιτρέπει την οργάνωση της εκτέλεσης του κώδικά του στο σύστημα του χρήστη)
- CVE-2023-25815: Υπερχείλιση buffer κατά την επεξεργασία αρχείων προσαρμοσμένης τοπικής προσαρμογής στο gettext. Αυτή η ευπάθεια επηρεάζει τους χρήστες που εργάζονται σε μηχανές Windows στις οποίες άλλα μη αξιόπιστα μέρη έχουν πρόσβαση εγγραφής. Συνήθως, όλοι οι χρήστες με έλεγχο ταυτότητας έχουν άδεια δημιουργίας φακέλων στο C:\, το οποίο επιτρέπει σε κακόβουλους φορείς να εισάγουν κακά μηνύματα στο git.exe.
- CVE-2023-29011: Δυνατότητα αντικατάστασης του αρχείου connect.exe κατά την εργασία μέσω του SOCKS5. Η θέση του αρχείου διαμόρφωσης connect.exe είναι κωδικοποιημένη σε μια διαδρομή που γενικά ερμηνεύεται ως C:\etc\connectrc, η οποία είναι παρόμοια με τα παραπάνω.
Κόμο εναλλακτική λύση για προστασία από ευπάθειες, Συνιστάται να αποφύγετε την εκτέλεση της εντολής «git εφαρμογή -- απόρριψη» κατά την εργασία με μη επαληθευμένες εξωτερικές ενημερώσεις κώδικα και την επαλήθευση του περιεχομένου του $GIT_DIR/config πριν εκτελέσετε τις εντολές "υπομονάδα git deinit","git config --rename-section" και "git config --remove-section" όταν ασχολείστε με μη αξιόπιστα αποθετήρια.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα σχετικά, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στο τον ακόλουθο σύνδεσμο.
Για όσους ενδιαφέρονται να παρακολουθήσουν την κυκλοφορία των ενημερώσεων πακέτων στις διανομές, μπορείτε να το κάνετε στις σελίδες του Debian, Ubuntu, RHEL, SUSE/openSUSE, Μαλακό καπέλλο, αψίδα, FreeBSD.