Πίσω στα RoboNews
▲ 116 πόντοιblog.arusekk.pl4 λεπτά ανάγνωσης•

Ανάλυση ευπάθειας account takeover στο SourceHut μέσω build logs

Πρωτότυπος τίτλος: "Sourcehut account takeover via build logs (XSS in ansi2html)" (από arusekk)

Αρχικό ΆρθροΣυζήτηση HN (23 σχόλια)
TL;DR (Εν Συντομία)

Μια κρίσιμη ευπάθεια XSS στη βιβλιοθήκη ansi2html επέτρεπε την εκτέλεση κακόβουλου κώδικα στα build logs του SourceHut. Η εκμετάλλευση της ευπάθειας μέσω OSC 8 hyperlinks μπορούσε να οδηγήσει σε πλήρη κατάληψη λογαριασμού (account takeover) και κλοπή deploy keys.

📌 Κύρια Σημεία & Συμπεράσματα

  • Η ευπάθεια εντοπίστηκε στην ανεπαρκή απολύμανση (sanitization) των ANSI escape sequences, επιτρέποντας την έγχυση κακόβουλων HTML attributes.
  • Η χρήση OSC 8 hyperlinks επέτρεπε την κατασκευή payload που εκτελούσε JavaScript στο context του χρήστη που προέβαλλε το build log.
  • Το πρόβλημα αναδείχθηκε λόγω της έλλειψης stateful ανάλυσης (transducer automaton) στη βιβλιοθήκη ansi2html, καθιστώντας την ευάλωτη σε bypasses.
  • Η στρατηγική άμυνας περιλαμβάνει αυστηρότερη Content-Security-Policy (CSP) και την αντικατάσταση της βιβλιοθήκης με μια πιο ασφαλή υλοποίηση.

Η αρχιτεκτονική του προβλήματος

Το 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 ή ασταθείς μεθόδους μετατροπής.

Ετικέτες:#Security#XSS#SourceHut#CI/CD#Vulnerability Research
GitHub Gems & Trends

Ανακαλύψτε καινοτόμα open-source εργαλεία και κρυμμένα διαμάντια ανοιχτού κώδικα.

Εξερεύνηση Gems

Διαβάστε επίσης