
Το GitHub παραβιάστηκε μέσω επέκτασης του VS Code (Μάιος 2026): Το επείγον πλάνο δράσης 60 λεπτών που πρέπει να εφαρμόσει κάθε προγραμματιστής απόψε
Στις 20 Μαΐου 2026, το GitHub επιβεβαίωσε ότι περίπου 3.800 από τα εσωτερικά αποθετήρια πηγαίου κώδικά του διέρρευσαν μέσω μιας κακόβουλης επέκτασης του VS Code που είχε εγκατασταθεί στον σταθμό εργασίας ενός υπαλλήλου. Εάν χρησιμοποιήσατε ένα GitHub PAT ή token npm μέσα στο VS Code τις τελευταίες 14 ημέρες, τα επόμενα 60 λεπτά έχουν κρίσιμη σημασία. Αυτό είναι το πλάνο δράσης: τι ακριβώς συνέβη, εάν επηρεάζεστε και τι πρέπει να ανανεώσετε πρώτο.
Βασικά Συμπεράσματα
- Τι συνέβη: Η υποδομή παραγωγής του GitHub.com δεν παραβιάστηκε. Ο σταθμός εργασίας ενός υπαλλήλου εγκατέστησε μια «δηλητηριασμένη» επέκταση (πολύ πιθανόν την Nx Console v18.95.0) που εξήγαγε PATs και διέρρευσε ~3.800 εσωτερικά αποθετήρια.
- Δεδομένα πελατών: Δεν επηρεάστηκαν. Τα δεδομένα που compromises ήταν ο εσωτερικός πηγαίος κώδικας του GitHub, όχι ο κώδικας ή οι λογαριασμοί πελατών.
- Ποιοι διατρέχουν κίνδυνο: Οποιοσδήποτε προγραμματιστής εγκατέστησε επέκταση του VS Code μεταξύ περίπου 18 Μαΐου, 12:36 UTC και 18 Μαΐου, 12:47 UTC (το παράθυρο των 11 λεπτών), ή οποιοσδήποτε χρησιμοποιούσε μακροχρόνια GitHub PATs από μέσα στο VS Code.
- Τι να κάνετε τώρα: Ανανεώστε πρώτα τα GitHub PATs, δεύτερον τα tokens npm, τρίτον τα κλειδιά AWS/cloud. Το πλήρες πλάνο δράσης βρίσκεται στην ενότητα «Τι πρέπει να κάνουν οι προγραμματιστές» παρακάτω.
TL;DR: Τα 6 πράγματα που πρέπει να κάνετε την επόμενη ώρα
Ο γρηγορότερος τρόπος για να περιορίσετε την έκταση της ζημιάς από την ιστορία του github hacked vscode extension είναι να ανανεώσετε τα διαπιστευτήρια στα οποία έχει πρόσβαση μια δηλητηριασμένη επέκταση, να ελέγξετε τι είναι εγκατεστημένο στον φορητό σας υπολογιστή και να εξετάσετε το αρχείο καταγραφής του οργανισμού σας στο GitHub για το παράθυρο 18-20 Μαΐου UTC. Έξι ενέργειες, καταταγμένες κατά βαρύτητα, με σειρά.
- Ανακαλέστε κάθε GitHub Personal Access Token που δημιουργήθηκε ή χρησιμοποιήθηκε στο VS Code τις τελευταίες 30 ημέρες.
- Ανανεώστε τα tokens npm μέσω
npm token revokeκαι εκδώστε ξανά με 2FA + trusted publishing. - Σκανάρετε τον φορητό σας υπολογιστή για IoCs από το GHSA-c9j4-9m59-847w (διαδρομές αρχείων, διεργασίες· οι εντολές ακολουθούν).
- Ελέγξτε το
code --list-extensions --show-versionsκαι απεγκαταστήστε οτιδήποτε δεν μπορείτε να δικαιολογήσετε. - Καθορίστε συγκεκριμένες versions επεκτάσεων στο
devcontainer.jsonκαι επιβάλετε μια allow-list σε επίπεδο οργανισμού. - Ελέγξτε το audit log του οργανισμού σας στο GitHub για μη εξουσιοδοτημένα pushes σε αποθετήρια μεταξύ 18-20 Μαΐου UTC.
Εάν έχετε χρόνο μόνο για δύο, κάντε τα #1 και #3. Τα υπόλοιπα μπορούν να περιμένουν μία ώρα.
Παραβιάστηκε πραγματικά το GitHub; Ας ξεκαθαρίσουμε τον τίτλο
Όχι, η υποδομή παραγωγής του GitHub.com δεν παραβιάστηκε στις 20 Μαΐου 2026. Ο σταθμός εργασίας ενός μεμονωμένου υπαλλήλου του GitHub compromises μετά την εγκατάσταση μιας κακόβουλης επέκτασης VS Code (πολύ πιθανόν της Nx Console v18.95.0). Ο επιτιθέμενος, που αυτοαποκαλείται TeamPCP (καταγραμμένος ως UNC6780), εξήγαγε περίπου 3.800 από τα εσωτερικά αποθετήρια πηγαίου κώδικα του GitHub. Ο κώδικας πελατών, οι λογαριασμοί πελατών και οι υπηρεσίες παραγωγής του GitHub δεν επηρεάζονται.
Ακολουθεί η καθαρότερη εκδοχή του τι συνέβη και τι δεν συνέβη.
| Τι συνέβη | Τι ΔΕΝ συνέβη |
|---|---|
| Ο φορητός υπολογιστής ενός υπαλλήλου compromises μέσω δηλητηριασμένης επέκτασης VS Code | Παραβιάστηκε η υποδομή παραγωγής του GitHub.com |
| ~3.800 εσωτερικά αποθετήρια πηγαίου κώδικα διέρρευσαν | Επηρεάστηκαν αποθετήρια ή λογαριασμοί πελατών |
| Κλέφθηκαν διαπιστευτήρια υπαλλήλου GitHub σε εκείνο το endpoint | Κλέφθηκαν PATs πελατών, tokens npm ή εξουσιοδοτήσεις OAuth από τα συστήματα του GitHub |
| Η TeamPCP ζήτησε λύτρα (σύμφωνα με το Tom's Hardware) | Το GitHub πληρώσε (δεν υπάρχουν αποδείξεις πληρωμής) |
Γιατί έχει σημασία αυτή η διατύπωση; Επειδή το συμπέρασμα δεν είναι ότι «το github hackαρε». Το συμπέρασμα είναι ότι τα endpoints των προγραμματιστών είναι πλέον η αδύναμη πλευρά κάθε οργανισμού μηχανικής. Κάθε μυστικό που κατέχει η ομάδα σας (GitHub PATs, tokens npm, κλειδιά AWS, sessions vault, κλειδιά παρόχων AI) βρίσκεται σε έναν φορητό υπολογιστή με ελάχιστη ή ανύπαρκτη κάλυψη EDR. Μια μοναδική δηλητηριασμένη επέκταση που τρέχει στο IDE σας κληρονομεί τα πάντα.
Ο εκπρόσωπος τύπου του GitHub, όπως αναφέρθηκε στο Bleeping Computer, επιβεβαίωσε τη διάσταση του endpoint του υπαλλήλου και τη γραμμή «χωρίς δεδομένα πελατών». Το Help Net Security πρόσθεσε την απόδοση ευθύνης στην TeamPCP. Η τεχνική αλυσίδα τεκμηρίωσης για την επέκταση βρίσκεται στην advisory GHSA-c9j4-9m59-847w.
Το GitHub.com δεν παραβιάστηκε. Ένας υπάλληλος του GitHub ναι. Κρατήστε αυτή τη διάκριση στο μυαλό σας καθώς διαβάζετε τη συνέχεια.
Τι συνέβη πραγματικά: Χρονοδιάγραμμα της διάρρηξης του Μαΐου 2026
Η ιστορία της διάρρηξης github 2026 εξελίχθηκε σε τέσσερα στάδια σε περίπου 48 ώρες. Μια δηλητηριασμένη επέκταση δημοσιεύτηκε στις 18 Μαΐου στις 12:36 UTC, αφαιρέθηκε 11 λεπτά αργότερα, ανιχνεύτηκε από το GitHub την επόμενη ημέρα και γνωστοποιήθηκε δημόσια στις 20 Μαΐου. Το συνοπτικό χρονοδιάγραμμα, με πηγές:
| Ώρα (UTC) | Γεγονός | Πηγή |
|---|---|---|
| 18 Μαΐου, 12:36 | Η Nx Console v18.95.0 δημοσιεύτηκε στο OpenVSX / Visual Studio Marketplace (πολύ πιθανόν) | StepSecurity / GHSA-c9j4-9m59-847w |
| 18 Μαΐου, 12:47 | Αφαίρεση της κακόβουλης έκδοσης, παράθυρο 11 λεπτών | StepSecurity |
| 19 Μαΐου | Το GitHub ανιχνεύει compromise endpoint υπαλλήλου· περιορίζει το περιστατικό | Εκπρόσωπος GitHub μέσω Bleeping Computer |
| 20 Μαΐου | Δημόσια γνωστοποίηση· η TeamPCP / UNC6780 αναλαμβάνει δημόσια την ευθύνη | Help Net Security, Hackread |
Αυτό το παράθυρο των 11 λεπτών είναι η πιο περίεργη λεπτομέρεια. Υποδηλώνει ότι ο επιτιθέμενος περιστρεφόταν μεταξύ επεκτάσεων για να αποφύγει την ανίχνευση από το marketplace, το ίδιο μοτίβο που τεκμηρίωσε η Koi Security στο σκουλήκι GlassWorm OpenVSX του Οκτωβρίου 2025. Η TeamPCP / UNC6780 έχει previously ισχυριστεί compromises του 2026 εναντίον των Trivy, KICS, LiteLLM, TanStack και MistralAI. Ίδια ομάδα, ίδιο πλάνο δράσης, διαφορετικοί στόχοι.
Τον περασμένο μήνα ήταν οι env vars της Vercel. Σήμερα είναι τα repos του GitHub. Το μοτίβο που παρακολουθούμε να εξελίσσεται τους τελευταίους 9 μήνες μετατοπίζει συνεχώς την έκταση της ζημιάς προς τα έξω. Δείτε την ανάλυσή μας για την απόκριση στη διάρρηξη Vercel για το συγγενικό περιστατικό.
Η επέκταση που πιθανότατα ευθύνεται: Nx Console v18.95.0 (Και γιατί το GitHub δεν επιβεβαιώνει)
Το GitHub δεν έχει ονομάσει επίσημα την επέκταση που εμπλέκεται στο compromise του endpoint του υπαλλήλου. Τα forensic στοιχεία ευθυγραμμίζονται έντονα με την Nx Console v18.95.0, αλλά αυτό παραμένει πολύ πιθανό, όχι επιβεβαιωμένο. Θα ενημερώσουμε αυτήν την ανάρτηση εάν το GitHub ονομάσει δημόσια διαφορετική επέκταση. Αντιμετωπίστε το υπόλοιπο αυτής της ενότητας ως την καλύτερη διαθέσιμη απόδοση ευθύνης, όχι ως διακηρυμένο γεγονός.
Τέσσερα κομμάτια circumstantial evidence ευθυγραμμίζουν την Nx Console με τη γνωστοποίηση του GitHub:
- Ταύτιση χρονισμού: Το παράθυρο της advisory GHSA-c9j4-9m59-847w (18 Μαΐου, 12:36-12:47 UTC) εμπίπτει στο παράθυρο compromise endpoint υπαλλήλου του GitHub στη δική του γνωστοποίηση.
- Επικάλυψη Forensic IoC: Η δημοσιευμένη ανάλυση payload της Nx Console από την StepSecurity (διαδρομές αρχείων, διεργασίες όπως
__DAEMONIZED, network endpoints) ταιριάζει με τα artifacts που παρατηρήθηκαν στο compromised endpoint σύμφωνα με την έκθεση της Wiz. - Μοτίβο απόδοσης ευθύνης TeamPCP: Η TeamPCP / UNC6780 δραστηριοποιείται στον χώρο της αλυσίδας εφοδιασμού του VS Code (Trivy, KICS, LiteLLM, TanStack, MistralAI το 2026) με συνεπή δομή payload.
- Το παράθυρο αφαίρεσης 11 λεπτών: Χαρακτηριστικό των επιθέσεων αλυσίδας εφοδιασμού όπου ο επιτιθέμενος ελέγχει τη στιγμή δημοσίευσης αλλά το marketplace το εντοπίζει γρήγορα.
Εάν δεν εγκαταστήσατε την Nx Console, δεν είστε ακόμα ασφαλής. Το ευρύτερο μοτίβο επίθεσης (διεργασίες __DAEMONIZED, κατάχρηση IMDS, εξαγωγή ~/.claude/settings.json) γενικεύεται σε οποιαδήποτε δηλητηριασμένη επέκταση. Η διαλογή στην επόμενη ενότητα ισχύει ανεξάρτητα από ποια επέκταση υποψιάζεστε.

Επηρεάζεστε; Η διαλογή 5 λεπτών
Υπάρχουν τρεις γρήγοροι έλεγχοι. (1) Εγκαταστήσατε ή ενημερώσατε αυτόματα μια επέκταση VS Code μεταξύ 18 Μαΐου, 12:36 και 12:47 UTC; (2) Υπάρχουν αρχεία IoC από το GHSA-c9j4-9m59-847w στον φορητό σας υπολογιστή αυτή τη στιγμή; (3) Έχετε χρησιμοποιήσει GitHub PAT μέσα στο VS Code τις τελευταίες 14 ημέρες; Εκτελέστε και τα τρία σε λιγότερο από πέντε λεπτά.
Έλεγχος 1, Audit επεκτάσεων
# List all installed extensions with versions
code --list-extensions --show-versions
# Specifically check for Nx Console v18.95.0
code --list-extensions --show-versions | grep -i "nrwl.angular-console\|nx-console"Οτιδήποτε ενημερώθηκε αυτόματα μεταξύ 17 και 18 Μαΐου αξίζει δεύτερη ματιά. Εάν βλέπετε την Nx Console ακριβώς στην έκδοση 18.95.0, είστε πιθανός στόχος. Η patched έκδοση είναι η 18.100.0. Απεγκαταστήστε την ή προχωρήστε απευθείας στο πλάνο δράσης παρακάτω.
Έλεγχος 2, Σάρωση IoC
# Check for the daemonized credential-harvest process artifacts (GHSA-c9j4-9m59-847w)
ps aux | grep -i "__DAEMONIZED" | grep -v grep
ls -la ~/.local/share/kitty/ 2>/dev/null
find ~ -name "*.daemonized*" 2>/dev/null
# IMDS abuse indicator (AWS credential harvest)
# Check shell history for unexpected curl to 169.254.169.254
grep -E "169\.254\.169\.254|metadata\.google\.internal" ~/.zsh_history ~/.bash_history 2>/dev/nullΈνας καθαρός υπολογιστής δεν πρέπει να επιστρέψει τίποτα για το grep του __DAEMONIZED, κανένα αρχείο .daemonized και κανένα hit IMDS στο history του shell σας. Εάν εμφανιστεί οποιοδήποτε από αυτά, θεωρήστε ότι ο φορητός υπολογιστής έχει compromises και αντιμετωπίστε κάθε διαπιστευτήριο που έχει αγγίξει τις τελευταίες 30 ημέρες ως compromised.
Έλεγχος 3, Έκθεση PAT
Εάν έχετε χρησιμοποιήσει ένα GitHub PAT (classic ή fine-grained) μέσα σε οποιοδήποτε terminal του VS Code, integrated git ή οποιαδήποτε επέκταση που καλεί το GitHub API τις τελευταίες 14 ημέρες, θεωρήστε το compromised και προχωρήστε στο πλάνο ανανέωσης παρακάτω. Αυτή είναι η συντηρητική προεπιλογή· δεν μπορείτε να ελέγξετε «ήταν το token στη μνήμη ενώ η επέκταση ήταν ενεργή». Ανανεώστε το.
Εάν χρησιμοποιείτε το Claude Code, η λίστα IoC περιλαμβάνει συγκεκριμένα το ~/.claude/settings.json. Δείτε τον οδηγό hooks του Claude Code για να δείτε τι αποθηκεύεται σε αυτό το αρχείο και ποια κλειδιά να ανανεώσετε πρώτα.
Εκτίμηση. Εάν οποιοσδήποτε από αυτούς τους τρεις ελέγχους δώσει θετικό αποτέλεσμα, σταματήστε να διαβάζετε την αφήγηση. Προχωρήστε απευθείας στο πλάνο δράσης στην επόμενη ενότητα. Τα επόμενα 55 λεπτά έχουν μεγαλύτερη σημασία από τη μεταθανάτια ανάλυση.
Τι πρέπει να κάνουν οι προγραμματιστές: Το επείγον πλάνο δράσης 60 λεπτών
Ανανεώστε τα διαπιστευτήρια με σειρά προτεραιότητας. Επίπεδο 0 (επόμενα 30 λεπτά): GitHub PATs και tokens npm. Επίπεδο 1 (σήμερα): Κλειδιά AWS / cloud, 1Password / Vault, secrets GitHub Actions. Επίπεδο 2 (αυτή την εβδομάδα): Third-party SaaS, εξουσιοδοτήσεις OAuth, κλειδιά SSH. Επίπεδο 3 (όταν βολεύει): Κλειδιά read-only και public keys. Κάθε επίπεδο αντιστοιχεί σε συγκεκριμένη μείωση της έκτασης ζημιάς.

ΤΩΡΑ ΑΜΕΣΑ: Εάν νομίζετε ότι έχετε πληγεί
Εάν η διαλογή σας έδωσε θετικό αποτέλεσμα, κάντε αυτά τα τρία πράγματα με σειρά πριν από οτιδήποτε άλλο.
- Τερματίστε τον daemon και απεγκαταστήστε την ύποπτη επέκταση:
# Kill the malicious payload (GHSA-c9j4-9m59-847w)
pkill -f __DAEMONIZED
pkill -f "nx-console.*18.95.0"
# Uninstall the suspect extension immediately
code --uninstall-extension nrwl.angular-console- Βγάλτε το καλώδιο δικτύου του φορητού σας υπολογιστή εάν έχετε οποιαδήποτε ένδειξη ενεργής εξαγωγής δεδομένων. Ακούγεται ακραίο. Είναι. Κάντε το ούτως ή άλλως. Μπορείτε να επανεξετάσετε offline.
- Καλέστε την ομάδα ασφαλείας σας ή постάρτε στο
#securitySlack πριν τρέξετε οτιδήποτε άλλο. Εάν εργάζεστε μόνοι, προχωρήστε στο Επίπεδο 0 παρακάτω.
Επίπεδο 0 (Επόμενα 30 λεπτά): GitHub + npm
Ανάκληση GitHub PAT μέσω του CLI gh και του web UI των ρυθμίσεων:
# Confirm what you're authenticated as
gh auth status
# List app installations the token has access to (helps inventory blast radius)
gh api -H "Accept: application/vnd.github+json" /user/installations
# The gh CLI cannot revoke classic PATs directly — use the web UI:
# https://github.com/settings/tokens
# Click "Revoke" on EVERY token. Do not selectively keep "the one that's probably fine."
# Re-issue with fine-grained PATs + ≤90-day expiration:
# https://github.com/settings/personal-access-tokens/new
# Scope one repo at a time, never the whole account.
# For org-owned PATs and installations:
gh api /orgs/{ORG}/installationsΑνανέωση token npm:
# List and revoke every npm token
npm token list
npm token revoke <token-id-1>
npm token revoke <token-id-2>
# Force 2FA on auth and writes
npm profile enable-2fa auth-and-writes
# For CI: migrate to OIDC trusted publishing — no more long-lived tokens
# Docs: https://docs.npmjs.com/trusted-publishersΕάν διατηρείτε δημοσιευμένα πακέτα, το token npm σας είναι το πιο επικίνδυνο διαπιστευτήριο που κατέχετε. Ανανεώστε το πριν από το AWS.
Επίπεδο 1 (Σήμερα): Cloud + Vaults + CI Secrets
Τα access keys AWS έπονται. Τα IoCs δείχνουν κατάχρηση IMDS, επομένως κάθε χρήστης IAM που άγγιξε το compromised endpoint είναι ύποπτος:
# List access keys for the current IAM user
aws iam list-access-keys --user-name $(aws sts get-caller-identity --query 'Arn' --output text | cut -d/ -f2)
# Deactivate the old key (don't delete yet — let workloads fail loudly first)
aws iam update-access-key --access-key-id AKIA... --status Inactive --user-name <user>
# Create a new key
aws iam create-access-key --user-name <user>
# Once deployed and verified, delete the old key
aws iam delete-access-key --access-key-id AKIA... --user-name <user>
# If any EC2 instance was using IMDSv1, force IMDSv2 immediately
aws ec2 modify-instance-metadata-options --instance-id i-... --http-tokens required1Password CLI: Αποσυνδεθείτε από κάθε συσκευή (op signout --all), αναγεννήστε τα session tokens και ελέγξτε την πρόσφατη πρόσβαση στο vault μέσω του web audit log της 1Password για οτιδήποτε εκτελέστηκε από το compromised endpoint.
HashiCorp Vault: Ανακαλέστε το user token σας (vault token revoke -self) και ζητήστε από έναν διαχειριστή να εκδώσει νέο με μικρότερο TTL.
Secrets GitHub Actions: Εάν κάποιο ανανεωμένο διαπιστευτήριο βρίσκεται επίσης στα Actions, ενημερώστε το. Χρησιμοποιήστε gh secret set GITHUB_PAT --body <new-pat> ανά repo, ή το UI σε επίπεδο οργανισμού για org secrets.
Κλειδιά API Anthropic και OpenAI: Η λίστα IoC GHSA-c9j4-9m59-847w αναφέρει συγκεκριμένα το ~/.claude/settings.json ως στόχο συγκομιδής. Ανακαλέστε και εκδώστε ξανά το κλειδί API της κονσόλας Anthropic και οποιοδήποτε κλειδί OpenAI έχετε αποθηκεύσει ποτέ σε αυτό το αρχείο.
Επίπεδο 2 (Αυτή την εβδομάδα): SSH + OAuth + Password Vaults
Τα κλειδιά SSH κινούνται πιο αργά αλλά vẫn εμπίπτουν στο scope. Η επέκταση είχε ανάγνωση filesystem στο ~/.ssh/:
# Audit existing SSH keys (when were they generated?)
for key in ~/.ssh/id_*; do
if [ -f "$key" ]; then
echo "Key: $key"
stat -c '%y' "$key" 2>/dev/null || stat -f '%Sm' "$key"
fi
done
# Generate a new Ed25519 key
ssh-keygen -t ed25519 -C "rotated-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519_new
# Upload public key to GitHub
gh ssh-key add ~/.ssh/id_ed25519_new.pub --title "rotated-$(date +%Y%m%d)"
# Delete the old key from GitHub via web UI, then verify SSH still works
ssh -T [email protected]Διαχειριστής κωδικών browser και keychain OS: Ανανεώστε οποιονδήποτε κωδικό που η επέκταση θα μπορούσε λογικά να έχει δει μέσω του clipboard. Η ρεαλιστική έκθεση αφορά κωδικούς που αντιγράψατε στο clipboard ενώ η επέκταση ήταν ενεργή.
Επίπεδο 3 (Όταν βολεύει): Audit + Επαλήθευση
Ελέγξτε το audit log του οργανισμού GitHub σας για το παράθυρο compromise. Αυτό απαιτεί δικαιώματα admin οργανισμού:
# Pull push events for the May 18-20 window
gh api -X GET /orgs/{ORG}/audit-log \
--paginate \
-f phrase='action:repo.push created:2026-05-18..2026-05-20' | jq '.[] | {actor, created_at, repo}'
# Spot-check suspicious commits (unexpected authors, large diffs)
gh api -X GET /repos/{ORG}/{REPO}/commits \
-f since=2026-05-18T00:00:00Z \
-f until=2026-05-20T23:59:59Z | jq '.[] | {sha, author: .commit.author, message: .commit.message}'
# Refresh OAuth grants
gh auth refresh -s admin:org -s admin:public_keyΕάν το audit log δείχνει pushes από το παράθυρο compromise που δεν κάνατε εσείς, κλιμακώστε το θέμα στην ομάδα ασφαλείας σας και διατηρήστε το JSON του audit log. Μην προσπαθήσετε να «αναιρέσετε» οτιδήποτε στο repo. Διατηρήστε πρώτα τα αποδεικτικά στοιχεία.
Καλύψαμε την ίδια λογική ιεραρχικής ανανέωσης για τη διάρρηξη env-var της Vercel τον Απρίλιο: ίδιο σχήμα, διαφορετικό επίπεδο.
Το πλαίσιο ελέγχου επεκτάσεων με 5 ερωτήσεις (Χρησιμοποιήστε το για πάντα)
Πριν εγκαταστήσετε ή εμπιστευτείτε οποιαδήποτε επέκταση VS Code, περάστε την από πέντε τεστ: ηλικία domain εκδότη, ταχύτητα εκδόσεων, γεγονότα ενεργοποίησης package.json, scope αδειών vs αναμενόμενη συμπεριφορά και audit ανοιχτού κώδικα repo. Η Nx Console v18.95.0 θα απέτυχε στο Τεστ #2: μια sudden άλμα έκδοσης μετά από σταθερό ρυθμό κυκλοφοριών είναι το κλασικό σημάδι αλυσίδας εφοδιασμού.
- Ηλικία domain εκδότη. Είναι το domain του εκδότη older από ένα έτος; Οι νέοι εκδότες σε νεοεγγεγραμμένα domains φέρουν μεγαλύτερο ρίσκο. Ελέγξτε μέσω της σελίδας εκδότη του Visual Studio Marketplace ή
whoisστο domain του email του εκδότη. - Ταχύτητα εκδόσεων. Δείχνει το ιστορικό εκδόσεων φυσιολογικό ρυθμό (μία κυκλοφορία κάθε 1-4 εβδομάδες) ή sudden spike (τρεις κυκλοφορίες σε 24 ώρες); Η sudden ταχύτητα είναι σήμα. Η Nx Console v18.95.0 ήταν μια ανωμαλία ταχύτητας.
- Γεγονότα ενεργοποίησης
package.json. Ανοίξτε το αρχείο.vsix(είναι zip) και διαβάστε ταactivationEvents. Οι επεκτάσεις που ενεργοποιούνται στο*(πάντα ενεργές) έχουν τη μεγαλύτερη επιφάνεια επίθεσης. Προτιμήστε επεκτάσεις που ενεργοποιούνται σε συγκεκριμένη γλώσσα ή όνομα αρχείου. - Απαιτούμενες άδειες vs αναμενόμενη συμπεριφορά. Ζητά μια επέκταση «θέματος» πρόσβαση δικτύου; Χρειάζεται μια επέκταση «snippet» εγγραφή στο filesystem; Οι ασυμφωνίες είναι red flags. Διασταυρώστε με τα docs ασφαλείας runtime επεκτάσεων της Microsoft.
- Audit repo ανοιχτού κώδικα. Βρίσκεται ο πηγαίος κώδικας στο GitHub; Διαβάστε τα τελευταία πέντε commits για ύποπτες αλλαγές: post-install hooks, blobs encoded σε base64, network calls σε άγνωστα domains.
Μια επέκταση που ενεργοποιείται στο * και ζητά πρόσβαση δικτύου είναι λειτουργικά ένα remote shell με το VS Code προσαρτημένο σε αυτό.
Το ίδιο πλαίσιο ελέγχου ισχύει για τους servers MCP, την επόμενη επιφάνεια αλυσίδας εφοδιασμού κατηγορίας επεκτάσεων. Δείτε την ανάλυσή μας για τους καλύτερους servers MCP 2026 για να δείτε ποιους εμπιστευόμαστε και γιατί.
Γιατί συμβαίνει συνεχώς αυτό: Το κύμα αλυσίδας εφοδιασμού 2025-2026
Η διάρρηξη του GitHub στις 20 Μαΐου είναι ένας κόμβος σε μια τροχιά 9 μηνών: σκουλήκι npm Shai-Hulud (Σεπτ 2025), σκουλήκι OpenVSX GlassWorm (Οκτ-Νοε 2025), Shai-Hulud 2.0 (Νοε 2025, >25.000 affected repos), Mini Shai-Hulud (αρχές 2026), Nx Console (18 Μαΐου 2026), compromise endpoint GitHub (20 Μαΐου 2026). Τα endpoints των προγραμματιστών έχουν γίνει η νέα αδύναμη πλευρά.
- Σεπτ 2025, σκουλήκι npm Shai-Hulud. Self-propagating malware σε δημοφιλή πακέτα npm. Η CISA εξέδωσε alert για την widespread compromise.
- Οκτ-Νοε 2025, GlassWorm. Το πρώτο self-propagating σκουλήκι που στόχευε επεκτάσεις VS Code στο OpenVSX. Γνωστοποίηση Koi Security.
- Νοε 2025, Shai-Hulud 2.0. Εξαγωγή πάνω από 25.000 repos. Το Microsoft Security Blog δημοσίευσε οδηγίες containment.
- Αρχές 2026, Mini Shai-Hulud. Παραλλαγή TeamPCP. Επαναλήψεις μικρότερης κλίμακας εναντίον Trivy, KICS, LiteLLM, TanStack και MistralAI.
- 18 Μαΐου 2026, Nx Console v18.95.0. Πολύ πιθανό vector για το compromise endpoint GitHub.
- 20 Μαΐου 2026, γνωστοποίηση GitHub. ~3.800 εσωτερικά repos διέρρευσαν. Σύμφωνα με τη forensic σειρά Shai-Hulud της Wiz, το μοτίβο κατάχρησης IMDS είναι άμεση εξέλιξη.
Το μοτίβο είναι ξεκάθαρο: οι φορητοί υπολογιστές των προγραμματιστών κατέχουν κάθε μυστικό του οργανισμού (GitHub PATs, κλειδιά AWS, tokens vault, κλειδιά παρόχων AI) και έχουν σχεδόν μηδενική κάλυψη EDR. Μέχρι να αντιστραφεί αυτή η ανισορροπία, αυτό το κύμα συνεχίζεται.
Η defensive AI είναι ένα κομμάτι της απάντησης. Καλύψαμε αυτή τη γωνία στην ανάλυσή μας για το πώς η AI预防 breaches δεδομένων νωρίτερα φέτος.
Η μεγαλύτερη απόκριση του GitHub: Trusted Publishing, FIDO 2FA, Tokens 90 ημερών
Το GitHub ήδη υλοποιούσε τέσσερις ελέγχους αλυσίδας εφοδιασμού πριν τις 20 Μαΐου: υποχρεωτικό 2FA για εκδότες npm, cap 90 ημερών σε granular write tokens, deprecation TOTP υπέρ FIDO και passkeys, και OIDC trusted publishing για GitHub Actions και GitLab CI. Η διάρρηξη του Μαΐου επιταχύνει μια ήδη εν εξελίξει migration· δεν εισάγει νέα πολιτική.
| Έλεγχος | Κατάσταση | Ενέργεια για εσάς |
|---|---|---|
| Υποχρεωτικό npm 2FA | Live | Ενεργοποιήστε τώρα: npm profile enable-2fa auth-and-writes |
| Cap 90 ημερών granular write token | Σε κυκλοφορία (τα υπάρχοντα tokens αναγκάζονται να λήξουν) | Μεταβείτε σε fine-grained PATs με TTL ≤90 ημερών |
| Deprecation TOTP, FIDO / passkeys | Phased rollout 2026 | Καταχωρίστε ένα passkey σε κάθε λογαριασμό GitHub σήμερα |
| OIDC trusted publishing | Live για GitHub Actions + GitLab CI | Μεταβείτε το CI από μακροχρόνια tokens npm σε OIDC |
Το ευρύτερο σχέδιο του GitHub για μια πιο ασφαλή αλυσίδα εφοδιασμού npm προηγείται αυτού του περιστατικού κατά μήνες. Όσο πιο γρήγορα ευθυγραμμιστείτε με αυτό, τόσο μικρότερη θα είναι η έκταση ζημιάς σας την επόμενη φορά.
Hardening: Πώς να επιβιώσετε στο επόμενο
Έξι forward-looking κινήσεις: καθορίστε versions επεκτάσεων στο devcontainer.json, επιβάλετε μια allow-list επεκτάσεων σε επίπεδο οργανισμού, τρέξτε EDR με visibility διεργασιών επεκτάσεων, σκανάρετε secrets σε κάθε push, περιορίστε τα PATs σε ένα repo και υιοθετήστε OIDC trusted publishing αντί για μακροχρόνια tokens. Κανένα από αυτά δεν θα prevention every incident, μαζί όμως μειώνουν την έκταση ζημιάς από «όλα στον φορητό υπολογιστή» σε «ένα repo».
{
"name": "secure-dev",
"extensions": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"settings": {
"extensions.autoUpdate": false,
"extensions.autoCheckUpdates": false
},
"containerEnv": {
"VSCODE_GALLERY_SERVICE_URL": "https://your-internal-allow-list.example.com"
}
}Εν συντομία:
- Καθορίστε κάθε version επέκτασης στο
devcontainer.jsonγια να kill την αυτόματη ενημέρωση. - Allow-list σε επίπεδο οργανισμού pointing το
VSCODE_GALLERY_SERVICE_URLσε internal mirror. - EDR με visibility διεργασιών IDE: Crowdstrike, SentinelOne ή Microsoft Defender for Endpoint με το VS Code στο scope.
- Secret-scan σε κάθε push: pre-commit και push-time, server-side.
- Περιορίστε κάθε PAT σε ένα repo: ποτέ scopes
*. - OIDC trusted publishing: κανένα μακροχρόνιο token npm ή registry στο CI.
Το CVE copy_file_range του Linux της περασμένης εβδομάδας είναι μια συγγενική ιστορία: διαφορετικό επίπεδο, ίδιο μάθημα. Το trust boundary που ξεχάσατε είναι αυτό που σας χτυπά.
Εάν σκέφτεστε AI coding agents στη συνέχεια, εφαρμόστε το ίδιο πλαίσιο ελέγχου. Έχουν το ίδιο trust profile με τις επεκτάσεις. Η ανάλυσή μας για τους καλύτερους AI coding agents 2026 περιγράφει ποιοι agents κερδίζουν αυτή την εμπιστοσύνη.
Συχνές Ερωτήσεις
Παραβιάστηκε το GitHub;
Όχι, όχι με την έννοια που υπονοούν οι περισσότεροι τίτλοι. Η παραγωγή του GitHub.com δεν παραβιάστηκε. Ένας υπάλληλος του GitHub εγκατέστησε μια κακόβουλη επέκταση VS Code στον σταθμό εργασίας του, η οποία εξήγαγε περίπου 3.800 από τα εσωτερικά αποθετήρια πηγαίου κώδικα του GitHub. Ο κώδικας πελατών, οι λογαριασμοί πελατών και οι υπηρεσίες παραγωγής του GitHub δεν επηρεάζονται.
Ποια επέκταση VS Code εμπλεκόταν πραγματικά;
Το GitHub δεν έχει επιβεβαιώσει επίσημα το όνομα της επέκτασης. Τα forensic στοιχεία από την StepSecurity, την Wiz και το GHSA-c9j4-9m59-847w δείχνουν πολύ πιθανόν την Nx Console v18.95.0, που δημοσιεύτηκε στις 18 Μαΐου στις 12:36 UTC και αφαιρέθηκε 11 λεπτά αργότερα. Το αντιμετωπίζουμε ως «πολύ πιθανό, όχι επιβεβαιωμένο» μέχρι να το ονομάσει το GitHub.
Είναι ασφαλής η χρήση της Nx Console τώρα;
Η patched έκδοση είναι η 18.100.0. Εάν έχετε εγκατεστημένη παλαιότερη v18.95.0, απεγκαταστήστε την αμέσως, τρέξτε τη σάρωση IoC στην ενότητα διαλογής μας και επανεγκαταστήστε μόνο από τον επίσημο εκδότη Nrwl στην έκδοση 18.100.0 ή νεότερη. Επαληθεύστε το domain του εκδότη πριν την επανεγκατάσταση και καθορίστε την version στο devcontainer.json.
Επηρεάστηκαν δεδομένα πελατών από τη διάρρηξη του GitHub;
Όχι. Σύμφωνα με την επίσημη δήλωση του GitHub μέσω Bleeping Computer, ο πηγαίος κώδικας πελατών, οι λογαριασμοί πελατών, τα tokens OAuth και τα production data που φιλοξενούνται στο GitHub δεν προσπελάστηκαν. Τα compromised data είναι ο εσωτερικός πηγαίος κώδικας του GitHub από το endpoint του υπαλλήλου. Αντιμετωπίστε το ως περιστατικό φορητού υπολογιστή υπαλλήλου, όχι ως διάρρηξη πλατφόρμας.
Πώς ξέρω εάν το GitHub PAT μου κλάπηκε;
Δεν το ξέρετε με βεβαιότητα. Η συντηρητική υπόθεση: εάν χρησιμοποιήσατε οποιοδήποτε GitHub PAT μέσα στο VS Code τις τελευταίες 14 ημέρες, θεωρήστε το compromised και ανανεώστε το. Ελέγξτε το audit log του GitHub μέσω gh api /orgs/{ORG}/audit-log για unfamiliar push events μεταξύ 18-20 Μαΐου UTC, στη συνέχεια ανακαλέστε και εκδώστε ξανά το token.
Τι είναι η TeamPCP και η UNC6780;
Η TeamPCP είναι μια ομάδα threat-actor· η UNC6780 είναι το ID tracking που αποδόθηκε από vendors incident-response. Έχουν αναλάβει δημόσια την ευθύνη για τη διάρρηξη του GitHub. Η ίδια ομάδα έχει ισχυριστεί compromises του 2026 εναντίον Trivy, KICS, LiteLLM, TanStack και MistralAI, ένα συνεπές μοτίβο στόχευσης αλυσίδας εφοδιασμού VS Code και npm.
Είναι sandboxed οι επεκτάσεις VS Code;
Όχι, όχι ουσιαστικά. Οι επεκτάσεις VS Code τρέχουν στη διεργασία Node.js του IDE με τα full filesystem και network privileges του χρήστη. Μπορούν να διαβάσουν κάθε αρχείο στον home directory σας, συμπεριλαμβανομένων κλειδιών SSH, ~/.aws/credentials, ~/.claude/settings.json και μνήμης διεργασιών μέσω /proc/*/mem στο Linux. Η Microsoft τεκμηριώνει το μοντέλο ασφαλείας runtime και τα όριά του στα official extension docs.
Επηρεάστηκαν τα GitHub Codespaces ή οι CI runners;
Δεν υπάρχουν αποδείξεις μέχρι στιγμής. Το compromise ήταν ένας σταθμός εργασίας υπαλλήλου, όχι υποδομή που φιλοξενείται από το GitHub. Τα Codespaces, οι runners GitHub Actions και η υποδομή CI面向 πελατών δεν αναφέρονται ως affected. Θα ενημερώσουμε αυτήν την ανάρτηση εάν νέα IoCs αλλάξουν αυτήν την εικόνα.
Συμπέρασμα
Τρία πράγματα να κρατήσετε:
- Το GitHub.com δεν hackαρε. Ο σταθμός εργασίας VS Code ενός υπαλλήλου ναι. Το μάθημα γενικεύεται σε κάθε προγραμματιστή.
- Ανανεώστε τώρα, πλαίσιο ελέγχου για πάντα. Το πλάνο δράσης 60 λεπτών είναι το patch· το πλαίσιο ελέγχου 5 ερωτήσεων είναι το ανοσοποιητικό σύστημα.
- Αυτό δεν είναι isolated incident. Είναι ο κόμβος #6 σε ένα κύμα αλυσίδας εφοδιασμού 9 μηνών που δεν επιβραδύνεται.
Τελευταία ενημέρωση: 20 Μαΐου 2026. Θα επανεξετάσουμε αυτήν την ανάρτηση στις 27 Μαΐου 2026 με νέα IoCs, vendor advisories και οποιαδήποτε επιβεβαιωμένη απόδοση ευθύνης επέκτασης από το GitHub.
Εάν η ομάδα σας χρειάζεται βοήθεια για τον έλεγχο της επιφάνειας επεκτάσεων VS Code, την υγιεινή PAT και token, ή τη δημιουργία πολιτικής allow-list σε επίπεδο οργανισμού, λάβετε δωρεάν consultation. Εργαζόμαστε intensively στην ασφάλεια endpoints προγραμματιστών από τη διάρρηξη Vercel τον Απρίλιο, και το παραπάνω πλάνο δράσης είναι αυτό που εφαρμόζουμε με πελάτες από την πρώτη ημέρα.