Μια κρίσιμη ευπάθεια υπερχείλισης buffer, που προσδιορίζεται ως CVE-2024-54887, ανακαλύφθηκε στους δρομολογητές TP-Link TL-WR940N, που επηρεάζει συγκεκριμένα τις εκδόσεις υλικού 3 και 4 με έκδοση υλικολογισμικού 3.16.9 και παλαιότερες.
Δείτε επίσης: Οι ΗΠΑ σκέφτονται απαγόρευση των κινεζικών TP-Link router

Αυτό το ελάττωμα επιτρέπει στους επιτιθέμενους να εκτελούν αυθαίρετο κώδικα εξ αποστάσεως, θέτοντας σημαντικό κίνδυνο για την ασφάλεια των χρηστών. Η βασική αιτία φαίνεται να είναι μια υπερχείλιση buffer στη διεπαφή ιστού του δρομολογητή, ειδικά στον χειρισμό των παραμέτρων διακομιστή DNS για IPv6 tunneling.
Σύμφωνα με τον Joward Bince, ερευνητή ασφάλειας, η ευπάθεια προέρχεται από ακατάλληλη επικύρωση εισόδου στο httpd daemon του δρομολογητή. Δύο παράμετροι, ο dnsserver1 και ο dnsserver2, που χρησιμοποιούνται για τη διαμόρφωση των διακομιστών IPv6 DNS, δεν ελέγχονται σωστά πριν αντιγραφούν σε buffer σταθερού μεγέθους.
Δείτε ακόμα: Hackers εκμεταλλεύονται ευπάθεια σε D-Link DIR-859 routers
Αυτό το ελάττωμα επιτρέπει σε έναν εισβολέα να πραγματοποιήσει υπερχείλιση buffer και ενδεχομένως να αντικαταστήσει κρίσιμες περιοχές μνήμης, συμπεριλαμβανομένης της διεύθυνσης επιστροφής στη στοίβα.

Οι ερευνητές χρησιμοποίησαν το πλαίσιο Firmadyne για να μιμηθούν το υλικολογισμικό του δρομολογητή για ανάλυση. Προσαρτώντας το σύστημα αρχείων και εξετάζοντας το δυαδικό httpd στο Ghidra, ανακάλυψαν ότι η συσκευή δεν διαθέτει προστασία NX (No-Execute) και PIE (Position Independent Executable), κάνοντας την εκμετάλλευση ευκολότερη.
Η ευάλωτη συνάρτηση αναγνωρίστηκε συσχετίζοντας αιτήματα ιστού με λειτουργίες υποστήριξης. Οι μη ασφαλείς κλήσεις συνάρτησης C όπως η strcpy() ήταν βασικοί δείκτες. Διαπιστώθηκε ότι ενώ υπήρχαν ορισμένες επικυρώσεις μήκους συμβολοσειράς, οι παράμετροι dnsserver1 και dnsserver2 παρέμειναν χωρίς έλεγχο.
Δείτε επίσης: TP-Link: Κρίσιμη ευπάθεια στο gaming router Archer C5400X
Μια ευπάθεια υπερχείλισης buffer, όπως στην περίπτωση των δρομολογητών TP-Link, εμφανίζεται όταν ένα πρόγραμμα εγγράφει περισσότερα δεδομένα σε ένα buffer από όσα μπορεί να κρατήσει με ασφάλεια, προκαλώντας την αντικατάσταση γειτονικών θέσεων μνήμης. Αυτό μπορεί να οδηγήσει σε απρόβλεπτη συμπεριφορά, σφάλματα συστήματος ή να επιτρέψει στους εισβολείς να εκτελέσουν αυθαίρετο κώδικα, δυνητικά βάζοντας σε κίνδυνο ολόκληρο το σύστημα. Τέτοια τρωτά σημεία προκύπτουν συχνά λόγω μη ασφαλών πρακτικών κωδικοποίησης, ιδιαίτερα σε γλώσσες όπως η C ή η C++ που δεν εκτελούν αυτόματο έλεγχο ορίων. Η σωστή επικύρωση εισόδου, ο έλεγχος ορίων και η υιοθέτηση προτύπων ασφαλούς κωδικοποίησης είναι απαραίτητα για την αποφυγή επιθέσεων υπερχείλισης buffer.
Πηγή: cybersecuritynews