Ανακαλύφθηκε ευπάθεια υψηλής σοβαρότητας (CVE-2024-12254) που πλήττει το CPython, επηρεάζοντας τις εκδόσεις Python 3.12.0 και μεταγενέστερες.
Η ευπάθεια εντοπίζεται στη μονάδα asyncio, και πιο συγκεκριμένα στη μέθοδο _SelectorSocketTransport.writelines(). Υπό ορισμένες συνθήκες, το ζήτημα αυτό μπορεί να προκαλέσει εξάντληση μνήμης, αποτελώντας σημαντική απειλή για τη σταθερότητα εφαρμογών που χρησιμοποιούν τη συγκεκριμένη λειτουργικότητα.
Επισκόπηση της Ευπάθειας
Δείτε σχετικά: Κρίσιμη ευπάθεια στο IBM Db2 επηρεάζει Linux και UNIX
Η ευπάθεια προκύπτει από λανθασμένο χειρισμό της μνήμης στη μέθοδο `writelines()` που χρησιμοποιείται στη μονάδα `asyncio`. Επηρεάζει μόνο τους χρήστες που πληρούν όλα τα παρακάτω κριτήρια:
Νέα εικόνα: Πώς ο Κρόνος κρύφτηκε πίσω από το φεγγάρι!
Βόρεια Κορέα: Κλάπηκαν crypto αξίας $ 659 εκατ. το 2024
Το TikTok ετοιμάζεται για κλείσιμο στις ΗΠΑ την Κυριακή;
Κανονικά, όταν ο buffer εγγραφής φτάνει σε ένα προκαθορισμένο όριο («υψηλή στάθμη»), το σύστημα σταματά προσωρινά τη διαδικασία εγγραφής και ειδοποιεί το πρωτόκολλο να αποστραγγίσει τον buffer, αποτρέποντας την υπερβολική κατανάλωση μνήμης. Ωστόσο, στην Python 3.12.0 και μεταγενέστερες εκδόσεις, αυτός ο μηχανισμός αποτυγχάνει, επιτρέποντας στον buffer εγγραφής να αυξάνεται ανεξέλεγκτα υπό συγκεκριμένες συνθήκες.
Το πρόβλημα εντοπίζεται στη λειτουργία της μεθόδου `asyncio._SelectorSocketTransport.writelines()`, η οποία αδυνατεί να σταματήσει τη διαδικασία εγγραφής και να αποστραγγίσει τον buffer όταν φτάνει το προκαθορισμένο όριο. Αυτή η δυσλειτουργία μπορεί να οδηγήσει σε ανεξέλεγκτη κατανάλωση μνήμης, αυξάνοντας τον κίνδυνο εξάντλησης των διαθέσιμων πόρων. Λόγω της σοβαρότητάς της, η ευπάθεια αυτή έχει χαρακτηριστεί ως κρίσιμη.
Διαβάστε επίσης: Hackers εκμεταλλεύονται ευπάθεια στο Apple Safari
Η συγκεκριμένη ευπάθεια επηρεάζει την Python 3.12.0 και μεταγενέστερες εκδόσεις σε συστήματα macOS και Linux. Συγκεκριμένα, τα πρωτόκολλα `asyncio` που χρησιμοποιούν τη μέθοδο `.writelines()` ενδέχεται να αποτύχουν να αποστραγγίσουν τον buffer εγγραφής, εξαιτίας της νέας συμπεριφοράς zero-copy-on-write που εισήχθη στην Python 3.12.0.
Παρόλο που οι ειδικές συνθήκες για την εκδήλωση της ευπάθειας περιορίζουν την έκτασή της, ο κίνδυνος ανεξέλεγκτης χρήσης μνήμης παραμένει σημαντικός.
- Εκδόσεις Python: Χρήση της Python 3.12.0 ή μεταγενέστερης.
- Λειτουργικά Συστήματα: Εγκατάσταση σε macOS ή Linux.
- Χρήση Μονάδας: Ενεργή χρήση της μονάδας asyncio με πρωτόκολλα.
- Χρήση Μεθόδου: Εξάρτηση από τη μέθοδο .writelines(), που εισήγαγε τη συμπεριφορά zero-copy-on-write από την Python 3.12.0.
Δείτε περισσότερα: Ευπάθεια XSS της SolarWinds επιτρέπει εισαγωγή malware
Εάν κάποια από αυτές τις προϋποθέσεις δεν ισχύει, τότε η χρήση της Python από εσάς πιθανότατα παραμένει ανεπηρέαστη.
Η ομάδα ανάπτυξης της Python εργάζεται εντατικά για την επίλυση του προβλήματος. Μια προτεινόμενη επιδιόρθωση βρίσκεται ήδη υπό αξιολόγηση και εξετάζεται μέσω του σχετικού pull request.
Τι μπορείτε να κάνετε:
Διαβάστε ακόμη: Ευπάθεια Bootloader επηρεάζει πάνω από 100 Cisco Switches
- Εγκατάσταση Ενημερώσεων: Παρακολουθήστε την καταχώρηση CVE και τα επίσημα αποθετήρια της Python για ενημερώσεις ασφαλείας.
- Αποφυγή Επηρεαζόμενων Εκδόσεων: Αν είναι δυνατόν, επιστρέψτε σε παλαιότερη έκδοση της Python (πριν την 3.12.0) που δεν επηρεάζεται από το ζήτημα.
- Περιορισμός Χρήσης της .writelines(): Αποφύγετε ή αντικαταστήστε τη χρήση της μεθόδου writelines() σε επηρεαζόμενα περιβάλλοντα έως ότου εφαρμοστεί η επιδιόρθωση.
Πηγή: cybersecuritynews