Μια νέα ευπάθεια τύπου «workflow injection» εντόπισαν ερευνητές κυβερνοασφάλειας της Wiz σε δημόσιο αποθετήριο της Snowflake στο GitHub. Το ζήτημα αφορούσε το snowflakedb/snowflake-connector-net και συγκεκριμένα έναν αυτοματισμό του GitHub Actions που μπορούσε, υπό προϋποθέσεις, να επιτρέψει την εκτέλεση αυθαίρετων εντολών και την έκθεση εσωτερικών διαπιστευτηρίων.

Η αδυναμία δεν εντοπίστηκε στον ίδιο τον Snowflake Connector για .NET, ούτε σε κάποια έκδοσή του. Αντίθετα, βρισκόταν στη διαδικασία CI/CD του αποθετηρίου, γεγονός που αναδεικνύει έναν συχνά υποτιμημένο κίνδυνο: τα εργαλεία ανάπτυξης και αυτοματισμού μπορούν να αποτελέσουν στόχο επίθεσης ακόμη και όταν το βασικό λογισμικό παραμένει ασφαλές.
Πώς μπορούσε να ενεργοποιηθεί η επίθεση
Το πρόβλημα εντοπίστηκε στο αρχείο .github/workflows/jira_issue.yml, το οποίο ενεργοποιούνταν όταν δημιουργούνταν ένα δημόσιο GitHub issue. Το workflow χρησιμοποιούσε δεδομένα που μπορούσε να ελέγξει ένας εξωτερικός χρήστης, όπως τον τίτλο και το περιεχόμενο του issue, μέσα σε εντολές shell.
Αυτό δημιουργούσε το κατάλληλο περιβάλλον για command injection. Ένας κακόβουλος χρήστης μπορούσε να κατασκευάσει ειδικά διαμορφωμένο περιεχόμενο, ώστε τμήμα του να αντιμετωπιστεί όχι ως απλό κείμενο αλλά ως εντολή προς εκτέλεση από τον GitHub Actions runner.
Δείτε επίσης: Το GitHub Actions ενισχύει την ασφάλεια του checkout για να μπλοκάρει επιθέσεις ‘pwn request’
Παράλληλα, η ίδια εργασία είχε πρόσβαση στις μεταβλητές JIRA_BASE_URL, JIRA_USER_EMAIL και JIRA_API_TOKEN. Συνεπώς, η επιτυχής εκμετάλλευση δεν περιοριζόταν στην εκτέλεση μιας εντολής, αλλά μπορούσε να οδηγήσει και στην αποκάλυψη ενός εσωτερικού API token.
Η λανθασμένη λογική στον έλεγχο ασφαλείας
Ένα ακόμη ενδιαφέρον στοιχείο αφορούσε τον μηχανισμό που υποτίθεται ότι θα απέτρεπε την εκτέλεση της εργασίας από μη εξουσιοδοτημένους χρήστες. Ο κώδικας έλεγχε την ιδιότητα github.event.pull_request.user.login, παρότι το συγκεκριμένο workflow ενεργοποιούνταν από event τύπου issue και όχι pull request.
Επειδή η ιδιότητα δεν υπήρχε στο συγκεκριμένο event, αξιολογούνταν ως κενή συμβολοσειρά. Έτσι, η σύγκριση με τον λογαριασμό whitesource-for-github-com[bot] δεν λειτουργούσε ως αποτελεσματικό φίλτρο και ένα συνηθισμένο δημόσιο issue μπορούσε να προχωρήσει στην εκτέλεση του job.
Η επιβεβαίωση της εκμετάλλευσης από τη Wiz
Η Wiz ανέφερε ότι το Red Agent, το σύστημα που χρησιμοποιεί για εγκεκριμένες δοκιμές ασφαλείας, κατάφερε να εκμεταλλευτεί την αδυναμία. Η αρχική προσπάθεια απέτυχε λόγω σφάλματος στη σύνταξη του shell, όμως το σύστημα προσαρμόστηκε και άλλαξε την προσέγγισή του.
Στη συνέχεια, οι ερευνητές έλαβαν out-of-band callback από τον GitHub Actions runner, επιβεβαιώνοντας ότι η εντολή είχε εκτελεστεί. Μέσω της ίδιας διαδικασίας κατάφεραν να αποκτήσουν το Jira API token που χρησιμοποιούσε το workflow.
Σύμφωνα με τη Wiz, το token ανήκε στον λογαριασμό qa@snowflake.net και παρείχε δικαιώματα ανάγνωσης σε έργα του Jira που σχετίζονταν με engineering, ζητήματα συμμόρφωσης ασφαλείας και προγράμματα bug bounty.
Δείτε επίσης: Παραβίαση GitHub Actions του Trivy Security Scanner

Άμεση αντίδραση και διόρθωση
Η Wiz ενημέρωσε τη Snowflake μέσω HackerOne στις 23 Ιουνίου 2026, με αναφορά #3819931. Η εταιρεία προχώρησε την ίδια ημέρα σε διόρθωση μέσω του pull request #1402, αντικαθιστώντας την απευθείας παρεμβολή δεδομένων του GitHub μέσα στις εντολές με μεταβλητές περιβάλλοντος που περνούν με ασφαλέστερο τρόπο στο jq.
Η ευάλωτη υλοποίηση είχε εισαχθεί στον default branch στις 18 Ιουνίου, μέσω του pull request #1218, και παρέμεινε ενεργή για περίπου πέντε ημέρες. Το Jira token αντικαταστάθηκε στις 24 Ιουνίου.
🔒 Προστατέψτε την ιδιωτικότητά σας με Proton VPN
Ελβετικό VPN από τους δημιουργούς του Proton Mail — αυστηρή πολιτική no-logs, ισχυρή κρυπτογράφηση και ενσωματωμένο NetShield που μπλοκάρει διαφημίσεις, trackers & malware.
- ✔ No-logs, με έδρα την Ελβετία (εκτός 14-Eyes)
- ✔ NetShield: φραγή διαφημίσεων, trackers & κακόβουλων domains
- ✔ Καλύπτει όλες τις συσκευές — δωρεάν έκδοση διαθέσιμη
Ο σύνδεσμος είναι συνεργατικός (affiliate) — το SecNews ενδέχεται να λάβει προμήθεια χωρίς επιπλέον κόστος για εσάς. Δεν επηρεάζει την ανεξαρτησία της αρθρογραφίας μας.
Η Snowflake δήλωσε ότι η έρευνά της δεν εντόπισε στοιχεία μη εξουσιοδοτημένης πρόσβασης, ενώ ο έλεγχος δεν κατέδειξε εξωτερική χρήση του συγκεκριμένου token κατά το διάστημα έκθεσης.
Ο ρόλος του GitHub Copilot παραμένει ασαφής
Ιδιαίτερο ενδιαφέρον παρουσιάζει και η συζήτηση γύρω από το GitHub Copilot Autofix. Η Wiz συνέδεσε το περιστατικό με αλλαγή που σχετιζόταν με το εργαλείο, ωστόσο το ιστορικό των commits δεν αποδεικνύει ότι το Copilot δημιούργησε τις ευάλωτες γραμμές.
Το GitHub επιβεβαιώνει συμμετοχή του Copilot στο σχετικό pull request, όμως η μη ασφαλής αναδιοργάνωση του jira_issue.yml αποδίδεται σε ξεχωριστό commit. Επομένως, η συγκεκριμένη υπόθεση δεν μπορεί να χρησιμοποιηθεί ως απόδειξη ότι το AI εργαλείο ήταν ο δημιουργός της ευπάθειας.
Δείτε επίσης: Η Coinbase ήταν ο στόχος των παραβιάσεων του GitHub Actions

Ένα μάθημα για την ασφάλεια των CI/CD pipelines
Το περιστατικό υπενθυμίζει ότι τα GitHub Actions workflows πρέπει να αντιμετωπίζονται ως κρίσιμο τμήμα της επιφάνειας επίθεσης. Δεδομένα από issues, pull requests και commits δεν πρέπει να εισάγονται απευθείας σε run: blocks χωρίς κατάλληλη απομόνωση.
Το ίδιο το GitHub είχε προειδοποιήσει ήδη από τον Ιούλιο του 2025 για τον κίνδυνο workflow injection και είχε προτείνει τη χρήση ενδιάμεσων μεταβλητών περιβάλλοντος.
Μέχρι τις 17 Αυγούστου 2026 δεν είχε αποδοθεί CVE, βαθμολογία CVSS ή καταχώριση στο KEV της CISA για το συγκεκριμένο ζήτημα. Δεν υπάρχουν επίσης διαθέσιμα στοιχεία που να τεκμηριώνουν πραγματική κακόβουλη εκμετάλλευση ή παραβίαση συστημάτων πελατών. Παρ’ όλα αυτά, η υπόθεση αναδεικνύει πόσο εύκολα ένας φαινομενικά βοηθητικός αυτοματισμός μπορεί να μετατραπεί σε σημείο εισόδου, όταν μη έμπιστα δεδομένα συνδυάζονται με δικαιώματα πρόσβασης σε εσωτερικές υπηρεσίες.
