Μια νεοσύστατη εταιρεία με έδρα το Βερολίνο αποκάλυψε ένα κενό ασφαλείας στην εκτέλεση απομακρυσμένου κώδικα (RCE) και ένα κενό ασφαλείας σε cross-site scripting (XSS) στο Pling, το οποίο χρησιμοποιείται από διάφορους καταλόγους εφαρμογών που έχουν δημιουργηθεί σε αυτήν την πλατφόρμα. Αυτό το κενό ασφαλείας θα μπορούσε να επιτρέψει την εκτέλεση κώδικα JavaScript στο περιβάλλον άλλων χρηστών. Οι ιστότοποι που επηρεάζονται περιλαμβάνουν μερικούς από τους κορυφαίους καταλόγους εφαρμογών ανοιχτού κώδικα, όπως store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org και pling.com, μεταξύ άλλων.
Η Positive Security, η οποία βρήκε τις τρύπες, είπε ότι τα σφάλματα εξακολουθούν να υπάρχουν στον κώδικα Pling και ότι οι συντηρητές της δεν έχουν ανταποκριθεί στις αναφορές ευπάθειας.
Νωρίτερα φέτος, εξετάσαμε τον τρόπο με τον οποίο οι δημοφιλείς εφαρμογές για επιτραπέζιους υπολογιστές χειρίζονται URI που παρέχονται από χρήστες και βρήκαμε ευπάθειες εκτέλεσης κώδικα σε πολλά από αυτά. Μία από τις εφαρμογές που έλεγξα ήταν το KDE Discover App Store, το οποίο αποδείχθηκε ότι χειρίζεται μη αξιόπιστα URI με ανασφαλή τρόπο (CVE-2021-28117, KDE Security Advisory).
Στην πορεία, βρήκα γρήγορα πολλές πιο σοβαρές ευπάθειες σε άλλες αγορές ελεύθερου λογισμικού.
Ένα σκουληκιωμένο XSS με πιθανότητες επιθέσεων αλυσίδας εφοδιασμού σε αγορές που βασίζονται στο Pling και μια κίνηση RCE που επηρεάζει τους χρήστες εφαρμογών PlingStore εξακολουθεί να μπορεί να αξιοποιηθεί.
Το Pling παρουσιάζεται ως μια αγορά για δημιουργικούς χρήστες, όπου μπορούν να ανεβάζουν θέματα και γραφικά για υπολογιστές Linux, μεταξύ άλλων, ελπίζοντας να κερδίσουν χρήματα από τους υποστηρικτές τους. Αποτελείται από δύο μέρη: τον κώδικα που απαιτείται για να εκτελέσετε το δικό σας παζάρι bling και μια εφαρμογή που βασίζεται στο Electron, την οποία οι χρήστες μπορούν να εγκαταστήσουν για να διαχειρίζονται τα θέματά τους από μια αγορά Pling. Ο κώδικας ιστού περιέχει την ευπάθεια XSS, ενώ ο πελάτης περιέχει τόσο την ευπάθεια XSS όσο και μια ευπάθεια RCE. Το Pling τροφοδοτεί διάφορους ιστότοπους, από το pling.com και το store.kde.org έως το gnome-look.org και το xfce-look.org.
Ο πυρήνας του προβλήματος είναι ότι η πλατφόρμα Pling επιτρέπει την προσθήκη μπλοκ πολυμέσων σε μορφή HTML, για παράδειγμα, για την ενσωμάτωση ενός βίντεο ή μιας εικόνας στο YouTube. Ο κώδικας που προστίθεται μέσω της φόρμας δεν έχει επικυρωθεί σωστά, επιτρέποντας την προσθήκη κακόβουλου κώδικα μεταμφιεσμένου ως εικόνα και την τοποθέτηση πληροφοριών στον κατάλογο που θα εκτελούν κώδικα JavaScript κατά την προβολή. Εάν αυτές οι πληροφορίες είναι προσβάσιμες σε χρήστες με λογαριασμό, τότε είναι δυνατό να ξεκινήσουν ενέργειες στον κατάλογο εκ μέρους αυτού του χρήστη, συμπεριλαμβανομένης της προσθήκης μιας κλήσης JavaScript στις σελίδες του, εφαρμόζοντας ουσιαστικά ένα είδος worm δικτύου.
Επιπλέον , εντοπίστηκε ένα κενό ασφαλείας στην εφαρμογή PlingStore, η οποία έχει γραφτεί με την πλατφόρμα Electron, και της επιτρέπει να πλοηγείται σε καταλόγους OpenDesktop χωρίς πρόγραμμα περιήγησης και να εγκαθιστά πακέτα που βρίσκονται εκεί. Αυτό το κενό ασφαλείας στο PlingStore επιτρέπει την εκτέλεση του κώδικά της στο σύστημα του χρήστη.
Όταν εκτελείται η εφαρμογή PlingStore, ξεκινά επίσης η διεργασία ocs-manager, η οποία δέχεται τοπικές συνδέσεις μέσω του WebSocket και εκτελεί εντολές όπως η φόρτωση και η εκκίνηση εφαρμογών σε μορφή AppImage . Αυτές οι εντολές υποτίθεται ότι μεταδίδονται από την εφαρμογή PlingStore, αλλά στην πραγματικότητα, λόγω της έλλειψης ελέγχου ταυτότητας, μπορεί να σταλεί ένα αίτημα στο ocs-manager από το πρόγραμμα περιήγησης του χρήστη. Εάν ένας χρήστης ανοίξει έναν κακόβουλο ιστότοπο, μπορεί να ξεκινήσει μια σύνδεση με το ocs-manager και να προκαλέσει την εκτέλεση κώδικα στο σύστημά του.
Έχει επίσης αναφερθεί ένα θέμα ευπάθειας XSS στον κατάλογο extensions.gnome.org. Στο πεδίο με τη διεύθυνση URL της αρχικής σελίδας του πρόσθετου, μπορείτε να καθορίσετε κώδικα JavaScript με τη μορφή "javascript:code" και όταν κάνετε κλικ στον σύνδεσμο, θα ξεκινήσει η καθορισμένη JavaScript αντί να ανοίξει ο ιστότοπος του έργου.
Από τη μία πλευρά, το πρόβλημα είναι περισσότερο υποθετικό , καθώς η εποπτεία αφορά την τοποθεσία στον κατάλογο extensions.gnome.org και η επίθεση απαιτεί όχι μόνο το άνοιγμα μιας συγκεκριμένης σελίδας αλλά και το ρητό κλικ στον σύνδεσμο. Από την άλλη πλευρά, είναι πιθανό κατά τη διάρκεια της διαδικασίας επαλήθευσης, ο συντονιστής να θέλει να μεταβεί στον ιστότοπο του έργου, να παρακάμψει τη φόρμα σύνδεσης και να εκτελέσει τον κώδικα JavaScript στο πλαίσιο του λογαριασμού του.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.