Ευπάθεια υπερχείλισης buffer στο libssh

Εντοπίστηκε ένα θέμα ευπάθειας (CVE-2-2) στη βιβλιοθήκη libssh (δεν πρέπει να συγχέεται με το libssh2021), που έχει σχεδιαστεί για να προσθέτει υποστήριξη πελάτη και διακομιστή για το πρωτόκολλο SSHv3634 στα προγράμματα C, οδηγώντας σε υπερχείλιση buffer κατά την εκκίνηση της διαδικασίας εκ νέου κλειδιού χρησιμοποιώντας την ανταλλαγή κλειδιών που χρησιμοποιεί διαφορετικό αλγόριθμο κατακερματισμού. Το πρόβλημα διορθώθηκε στην έκδοση 0.9.6.

Η ουσία του προβλήματος είναι ότι η λειτουργία αλλαγής κλειδιού επιτρέπει τη χρήση κρυπτογραφικών κατακερματισμών με μέγεθος cast που διαφέρει από τον αλγόριθμο που χρησιμοποιήθηκε αρχικά. Σε αυτήν την περίπτωση, η μνήμη για τον κατακερματισμό στο libssh εκχωρήθηκε με βάση το αρχικό μέγεθος κατακερματισμού και η χρήση μεγαλύτερου μεγέθους κατακερματισμού οδηγεί σε αντικατάσταση δεδομένων πέρα ​​από το εκχωρημένο όριο της προσωρινής μνήμης. Ως εναλλακτική μέθοδος ασφαλείας, μπορείτε να περιορίσετε τη λίστα των υποστηριζόμενων μεθόδων ανταλλαγής κλειδιών μόνο σε αλγόριθμους με το ίδιο μέγεθος κατακερματισμού. Για παράδειγμα, για να συνδεθείτε στο SHA256, μπορείτε να προσθέσετε στον κώδικα: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdhp-sha2-nist");

Πηγή: opennet.ru

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