Ανάλυση ευπάθειας account takeover στο SourceHut μέσω build logs
Πρωτότυπος τίτλος: "Sourcehut account takeover via build logs (XSS in ansi2html)" (από arusekk)
Μια κρίσιμη ευπάθεια XSS στη βιβλιοθήκη ansi2html επέτρεπε την εκτέλεση κακόβουλου κώδικα στα build logs του SourceHut. Η εκμετάλλευση της ευπάθειας μέσω OSC 8 hyperlinks μπορούσε να οδηγήσει σε πλήρη κατάληψη λογαριασμού (account takeover) και κλοπή deploy keys.
Η αρχιτεκτονική του προβλήματος
Το SourceHut χρησιμοποιεί τη βιβλιοθήκη ansi2html για τη μετατροπή των ANSI escape codes από τα build logs σε HTML. Η ευπάθεια προέκυψε από τον τρόπο με τον οποίο η βιβλιοθήκη επεξεργαζόταν τα OSC 8 hyperlinks. Λόγω κακής δομής του parser, ήταν δυνατή η έγχυση επιπλέον HTML attributes, όπως onfocus ή autofocus, οδηγώντας σε Cross-Site Scripting (XSS).
Εκμετάλλευση και κλιμάκωση (Weaponization)
Ένας επιτιθέμενος μπορούσε να εισάγει ένα κακόβουλο ANSI sequence στα logs ενός build job. Όταν ένας διαχειριστής ή ένας χρήστης με υψηλά προνόμια προέβαλλε το log, το payload εκτελούνταν στο browser του. Αυτό επέτρεπε την ανάγνωση του CSRF token, την υποβολή νέων build jobs για λογαριασμό του θύματος και την πρόσβαση σε ευαίσθητα deploy keys, καθιστώντας την ευπάθεια εξαιρετικά κρίσιμη.
Διδάγματα για την ασφάλεια της εφοδιαστικής αλυσίδας
Η περίπτωση αυτή υπογραμμίζει τον κίνδυνο των dependencies που δεν συντηρούνται ενεργά. Παρά το γεγονός ότι το SourceHut διαθέτει ισχυρές δικλείδες ασφαλείας, η εξάρτηση από μια βιβλιοθήκη τρίτου κατασκευαστή (upstream) που δεν είχε λάβει ενημερώσεις για χρόνια, άφησε την υποδομή εκτεθειμένη για πάνω από τέσσερα έτη. Η λύση απαιτεί πλέον μια πιο στιβαρή προσέγγιση στην απολύμανση δεδομένων και την υιοθέτηση stateful parsers που δεν βασίζονται σε απλά regex ή ασταθείς μεθόδους μετατροπής.
Ανακαλύψτε καινοτόμα open-source εργαλεία και κρυμμένα διαμάντια ανοιχτού κώδικα.