Jump to content
  • Newsbot
    Newsbot

    Κρίσιμη ευπάθεια στο protobuf.js επιτρέπει την εκτέλεση κακόβουλου κώδικα JavaScript

    • Κρίσιμη RCE ευπάθεια (CVSS 9.4) εντοπίστηκε στο protobuf.js, με ~52 εκατομμύρια εβδομαδιαίες λήψεις στο npm — ένα από τα πιο διαδεδομένα πακέτα της σύγχρονης cloud υποδομής.
    • Η εκμετάλλευση είναι τετριμμένη: αρκεί ένα κακόβουλο protobuf schema αρχείο για να εκτελεστεί αυθαίρετος κώδικας χωρίς authentication ή user interaction.
    • Διατίθενται ήδη patches (v8.0.1 και v7.5.5) — άμεση αναβάθμιση επιβάλλεται για όλα τα projects που εξαρτώνται από το πακέτο.

    Proof-of-concept exploit code έχει δημοσιευθεί για μια κρίσιμη ευπάθεια απομακρυσμένης εκτέλεσης κώδικα (RCE) στο protobuf.js, την ευρέως διαδεδομένη JavaScript υλοποίηση των Google Protocol Buffers. Το πακέτο κατεβαίνεται περίπου 52 εκατομμύρια φορές εβδομαδιαίως και συχνά εγκαθίσταται ως κρυφή εξάρτηση άλλων δημοφιλών βιβλιοθηκών, πράγμα που σημαίνει ότι πολλές ομάδες ανάπτυξης το αποστέλλουν στην παραγωγή χωρίς να το γνωρίζουν.

    Τι ακριβώς συμβαίνει

    Σύμφωνα με report της εταιρείας εφαρμοσμένης ασφάλειας Endor Labs, η RCE ευπάθεια στο protobuf.js προκαλείται από μη ασφαλή δυναμική δημιουργία κώδικα. Συγκεκριμένα, η βιβλιοθήκη κατασκευάζει JavaScript functions από protobuf schemas μέσω string concatenation και τις εκτελεί μέσω του Function() constructor, αλλά αδυνατεί να επικυρώσει τα schema-derived identifiers. Αυτό επιτρέπει σε επιτιθέμενους να εισάγουν αυθαίρετο κώδικα στις παραγόμενες functions, εκμεταλλευόμενοι ονόματα μηνυμάτων και άλλα schema-derived πεδία.

    Σε εκδόσεις πριν από τις 8.0.1 και 7.5.5, οι επιτιθέμενοι μπορούν να εισάγουν αυθαίρετο κώδικα στα πεδία type των protobuf definitions, ο οποίος εκτελείται κατά τη διαδικασία decoding αντικειμένων. Η ευπάθεια έχει λάβει CVSS score 9.4 (Critical) με CWE-94: Improper Control of Generation of Code.

    Γιατί είναι τόσο επικίνδυνη

    Για την εκμετάλλευση αρκεί ο επιτιθέμενος να τροφοδοτήσει ένα κακόβουλο αρχείο ρυθμίσεων (protobuf schema) στην εφαρμογή-στόχο — μια προϋπόθεση που ακούγεται στενή αλλά είναι συνηθισμένη στην πράξη, καθώς εφαρμογές φορτώνουν τακτικά τέτοια αρχεία από shared registries, partner integrations ή third-party servers. Μόλις ένα «δηλητηριασμένο» αρχείο βρεθεί στη μνήμη, η εκμετάλλευση γίνεται τετριμμένη: το πρώτο μήνυμα που επεξεργάζεται η εφαρμογή ενεργοποιεί το payload, χωρίς authentication ή user interaction.

    Το πακέτο αποτελεί εξάρτηση του @grpc/proto-loader, των Firebase SDKs, των Google Cloud client libraries, καθώς και πλήθους εργαλείων observability και data-plane tooling. Η Endor Labs προειδοποιεί ότι «η εκμετάλλευση είναι απλή», όπως αποδεικνύει και ο minimal PoC που συνοδεύει το advisory — ωστόσο δεν έχει παρατηρηθεί ενεργή εκμετάλλευση στη φύση μέχρι στιγμής.

    Timeline ανακάλυψης και patches

    Η ευπάθεια αναφέρθηκε από τον ερευνητή της Endor Labs Cristian Staicu στις 2 Μαρτίου, και οι maintainers του protobuf.js κυκλοφόρησαν patch στο GitHub στις 11 Μαρτίου. Τα fixes στα npm packages έγιναν διαθέσιμα στις 4 Απριλίου για τον κλάδο 8.x και στις 15 Απριλίου για τον κλάδο 7.x. Το ζήτημα δεν έχει λάβει ακόμα επίσημο CVE αριθμό και παρακολουθείται ως GHSA-xq3m-2v4x-88gg, με βάση τον identifier που του έχει αποδώσει το GitHub.

    Τι πρέπει να κάνετε

    Η ευπάθεια επηρεάζει εκδόσεις protobuf.js 8.0.0/7.5.4 και παλαιότερες· η Endor Labs συνιστά αναβάθμιση στις 8.0.1 και 7.5.5 που αντιμετωπίζουν το πρόβλημα. Το patch εκκαθαρίζει τα type names αφαιρώντας μη αλφαριθμητικούς χαρακτήρες, αποτρέποντας έτσι τον επιτιθέμενο από το να «κλείσει» τη συνθετική function.

    Παράλληλα με την αναβάθμιση, η Endor Labs συνιστά στους διαχειριστές συστημάτων να ελέγχουν τις transitive dependencies, να αντιμετωπίζουν το schema-loading ως μη έμπιστη είσοδο, και να προτιμούν precompiled/static schemas στην παραγωγή. Το συγκεκριμένο bug αποτελεί υπενθύμιση ότι τα schema αρχεία που οι developers συνηθίζουν να αντιγράφουν και να εισάγουν αποτελούν ολοένα και μεγαλύτερη επιφάνεια επίθεσης.

    Πηγές


×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.