Εκατομμύρια συστήματα Linux βρίσκονται εκτεθειμένα σε επιθέσεις εκτέλεσης απομαρκυσμένου κώδικα καθώς ένα race condition bug στο Linux Kernel το επιτρέπει ακόμα και απομακρυσμένα χωρίς κανένα privilege escalation.

Τα bugs τύπου race condition δημιουργούνται σε multi-threaded κυρίως εφαρμογές όταν το ένα thread προσπαθεί να προσπελάσει δεδομένα τα οποία εκεινή την ώρα επιχειρεί να προσπελάσει ή να τροποποιήσει και ένα δεύτερο thread.

Για παράδειγμα:


int x = 1;
for(int i = 0; i<10; i++){
x = x + 1;
}

Στο παραπάνω παράδειγμα, έχουμε μια μεταβλητή x η οποία παίρνει μια τιμή στην πρώτη γραμμή του κώδικά μας, και μετά, σε κάθε επανάληψη η συγκεκριμένη τιμή αυξάνεται ανά 1. Οπότε, πρέπει στο τέλος η τιμή της x να ισούται με 10 + 1 = 11.

Όμως, καθώς ο αλγόριθμος που διαχειρίζεται τα multi-threading tasks επιτρέπει την απροσδιόριστη εναλλαγή μεταξύ των threads, είναι πιθανό το δεύτερο thread να θέλει να αλλάξει τα δεδομένα στην εκτέλεση του κώδικα κας, αλλάζοντας, για παράδειγμα, την τιμή του x. Συνεπώς, αλλάζοντας και το επιθμητό αποτέλεσμα του κωδικά μας, που θα ήταν η ανάθεση της τιμής 11 στην μεταβλητή x.

Μια τέτοιου τύπου, λοιπόν, ευπάθεια εντόπισαν ερευνητές στις εκδόσεις του kernel πριν από την 5.0.8 η οποία πήρε και τον κωδικό (CVE-2019-11815). Συγκεκριμένα, η ευπάθεια εντοπίζεται στο rds_tcp_kill_sock στο αρχείο net/rds/tcp.c . Το συγκεκριμένο race condition επιτρέπει να υπάρξει μια συνθήκη η οποία ονομάζεται use-after-free (UAF) όπου ουσιαστικά επιτρέπει την χρήση κάποιων θέσεων μνήμης εφόσον βρεθεί σε διαθεσιμότητα μετά τη χρήση του από το σύστημα.

Στο CVE-2019-11815 οι επιτιθέμενοι μπορούν να εκμεταλλετούν την ευπάθεια στέλνοντας ειδικά διαμορφωμένα TCP πακέτα για να πυροδοτήσουν μια κατάσταση UAF σχετικά με το cleanup του net namespace.

Το blog του NIST (National Institute of Science and Technology) Vulnerability Database έγραψε πως ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί την προκείμενη ευπάθεια χωρίς elevated privilleges, χωρίς authentication και χωρίς user interaction. 

Βέβαια, σύμφωνα με το CVSS v3.0 index, το οποίο εκτιμά πόσο πιθανό είναι κανείς να καταφέρει να εκμεταλλευτεί την συγκεκριμένη ευπάθεια, το επίπεδο δυσκολίας για την αξιοποίηση του vulnerability είναι αρκετά μεγάλο. 

Το Linux kernel δημοσίευσε μια αναβάθμιση στις 17 Απριλίου μα το bug δεν είχε αναφερθεί μέχρι εκείνη τη στιγμή, με συνέπεια, μόλις υπήρξε εκτενέστερη δημοσιοποίησή του, οι περισσότερες διανομές συμπεριλαμβανομένων των Debian, Red Hat, Suse και Ubuntu να δώσουν διορθωτικά updates μέσα στην περασμένη εβδομάδα. 

ΑΦΗΣΤΕ ΜΙΑ ΑΠΑΝΤΗΣΗ

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.