Ερευνητές ασφάλειας της εταιρείας Imperva κατόρθωσαν να εκτελέσουν αυθαίρετο κώδικα σε επίσημη και αδιάφορη έκδοση του Node.js χρησιμοποιώντας ειδικά διαμορφωμένα δεδομένα Brotli.
Η επίθεση, η οποία ονομάζεται «Node2Shell», πραγματοποιήθηκε σε τυπική εικόνα Linux arm64 της έκδοσης 24.22.0, χωρίς τη χρήση εντοπισμού σφαλμάτων ή προσαρμοσμένης δόμησης, αξιοποιώντας ένα σοβαρό κενό ασφαλείας στον ενσωματωμένο αποκωδικοποιητή που καταγράφηκε με το αναγνωριστικό CVE-2026-111497.
Η προηγούμενη δημόσια απόδειξη είχε καταφέρει εκτέλεση κώδικα αποκλειστικά σε τεχνητά αποδυναμωμένο περιβάλλον, ενώ η νέα δοκιμή αποδεικνύει ότι ο κίνδυνος αφορά πλέον και τις κανονικές εγκαταστάσεις παραγωγής, παρόλο που απαιτήθηκαν αρκετές προσπάθειες για την επιτυχία της επίθεσης.
Επηρεαζόμενες εφαρμογές και μηχανισμός σφάλματος
Η ευπάθεια επηρεάζει τις βασικές σειρές 22.x, 24.x και 26.x του Node.js, καθώς ο αποκωδικοποιητής Brotli ενεργοποιείται ευρέως είτε κατά την ανάγνωση συμπιεσμένων απαντήσεων μέσω της ενσωματωμένης συνάρτησης fetch είτε κατά την επεξεργασία αιτημάτων σε δημοφιλές ενδιάμεσο λογισμικό όπως το Express.
Το σφάλμα προκύπτει από τον τρόπο με τον οποίο ο αποκωδικοποιητής διαχειρίζεται τα μη έγκυρα σημεία αλλαγής τύπου μπλοκ σε μια ροή δεδομένων, διαβάζοντας λανθασμένα τα δεδομένα ως αίτημα για περισσότερη είσοδο και προκαλώντας εγγραφή πέρα από τα επιτρεπόμενα όρια της μνήμης.
Άμεση ανάγκη ενημέρωσης συστημάτων
Η επίσημη κοινότητα του Node.js δημοσίευσε διορθωμένες εκδόσεις στις 21 Οκτωβρίου, ενσωματώνοντας σχετική ενημέρωση που διακόπτει τη διαδικασία αποκωδικοποίησης με μήνυμα σφάλματος αντί να συνεχίζει σε ασταθή κατάσταση. Οι διαχειριστές εφαρμογών καλούνται να ενημερώσουν άμεσα τα συστήματά τους σε ενημερωμένες εκδόσεις, καθώς δεν υπάρχουν διαθέσιμες εναλλακτικές λύσεις ασφαλείας εντός του ίδιου του περιβάλλοντος εκτέλεσης για τις παλαιότερες εκδόσεις.