Τρωτά σημεία στον διαχειριστή πακέτων Cargo που χρησιμοποιούνται για έργα Rust

Στον διαχειριστή πακέτων Cargo, που χρησιμοποιείται για τη διαχείριση πακέτων και τη δημιουργία έργων στη γλώσσα Rust, έχουν εντοπιστεί δύο ευπάθειες που μπορούν να αξιοποιηθούν κατά τη λήψη ειδικά σχεδιασμένων πακέτων από αποθετήρια τρίτων (αναφέρεται ότι οι χρήστες του επίσημου αποθετηρίου crates.io δεν επηρεάζονται από το πρόβλημα). Η πρώτη ευπάθεια (CVE-2022-36113) επιτρέπει την αντικατάσταση των δύο πρώτων byte οποιουδήποτε αρχείου, εφόσον το επιτρέπουν τα τρέχοντα δικαιώματα. Η δεύτερη ευπάθεια (CVE-2022-36114) μπορεί να χρησιμοποιηθεί για την εξάντληση του χώρου στο δίσκο.

Τα τρωτά σημεία θα διορθωθούν στην κυκλοφορία του Rust 1.64, που έχει προγραμματιστεί για τις 22 Σεπτεμβρίου. Τα τρωτά σημεία έχουν χαμηλό επίπεδο σοβαρότητας, καθώς παρόμοια βλάβη μπορεί να προκληθεί κατά τη χρήση μη επαληθευμένων πακέτων από αποθετήρια τρίτων, χρησιμοποιώντας την τυπική δυνατότητα εκκίνησης προσαρμοσμένων χειριστών από σενάρια συναρμολόγησης ή διαδικαστικές μακροεντολές που παρέχονται στο πακέτο. Ταυτόχρονα, τα προαναφερθέντα προβλήματα διαφέρουν ως προς το ότι αξιοποιούνται στο στάδιο του ανοίγματος του πακέτου μετά τη λήψη (χωρίς συναρμολόγηση).

Συγκεκριμένα, μετά τη λήψη ενός πακέτου, το cargo αποσυσκευάζει το περιεχόμενό του στον κατάλογο ~/.cargo και αποθηκεύει ένα σημάδι επιτυχούς αποσυσκευασίας στο αρχείο .cargo-ok. Η ουσία της πρώτης ευπάθειας είναι ότι ο δημιουργός του πακέτου μπορεί να τοποθετήσει ένα συμβολικό σύνδεσμο μέσα με το όνομα .cargo-ok, το οποίο θα οδηγήσει στην εγγραφή του κειμένου "ok" στο αρχείο στο οποίο υποδεικνύεται ο σύνδεσμος.

Η δεύτερη ευπάθεια προκαλείται από την έλλειψη ορίου στο μέγεθος των δεδομένων που εξάγονται από το αρχείο, τα οποία μπορούν να χρησιμοποιηθούν για τη δημιουργία «βομβών zip» (το αρχείο μπορεί να περιέχει δεδομένα που επιτρέπουν την επίτευξη του μέγιστου λόγου συμπίεσης για τη μορφή zip - περίπου 28 εκατομμύρια φορές, σε αυτήν την περίπτωση, για παράδειγμα, ένα ειδικά προετοιμασμένο αρχείο zip 10 MB θα έχει ως αποτέλεσμα την αποσυμπίεση περίπου 281 TB δεδομένων).

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο