
GitHub Violato da un'Estensione VS Code (Maggio 2026): Il Manuale d'Emergenza da 60 Minuti per Ogni Sviluppatore
Il 20 maggio 2026, GitHub ha confermato che circa 3.800 dei propri repository interni di codice sorgente sono stati esfiltrati tramite un'estensione VS Code malevola installata sulla workstation di un dipendente. Se hai usato un PAT GitHub o un token npm dentro VS Code negli ultimi 14 giorni, i prossimi 60 minuti contano. Questo è il piano: cosa è successo davvero, se sei coinvolto, e cosa ruotare per primo.
Punti Chiave
- Cosa è successo: La produzione di GitHub.com non è stata violata — il VS Code di un dipendente ha installato un'estensione avvelenata (molto probabilmente Nx Console v18.95.0) che ha esfiltrato PAT e scaricato circa 3.800 repository interni.
- Dati dei clienti: Non coinvolti. I dati compromessi sono il codice sorgente interno di GitHub, non il codice o gli account dei clienti.
- Chi è a rischio: Qualsiasi sviluppatore che ha installato un'estensione VS Code tra circa il 18 maggio alle 12:36 UTC e le 12:47 UTC (la finestra di 11 minuti), o chiunque usi PAT GitHub di lunga durata dall'interno di VS Code.
- Cosa fare adesso: Ruota prima i PAT GitHub, poi i token npm, poi le chiavi AWS/cloud — il piano completo è nella sezione "Cosa Devono Fare gli Sviluppatori" qui sotto.
TL;DR: Le 6 Cose da Fare nella Prossima Ora
Il modo più rapido per contenere il raggio d'azione dalla storia dell'estensione VS Code GitHub violata è ruotare le credenziali raggiungibili da un'estensione avvelenata, verificare cosa è installato sul tuo laptop, e controllare il log del tuo org GitHub per la finestra UTC del 18-20 maggio. Sei azioni, ordinate per impatto.
- Revoca ogni Personal Access Token GitHub creato o usato in VS Code negli ultimi 30 giorni.
- Ruota i token npm tramite
npm token revokee riemettili con 2FA + trusted publishing. - Scansiona il laptop alla ricerca di IoC da GHSA-c9j4-9m59-847w (percorsi file, processi; comandi sotto).
- Verifica
code --list-extensions --show-versionse disinstalla tutto ciò che non riesci a giustificare. - Fissa le versioni delle estensioni in
devcontainer.jsone applica una lista consentita a livello di org. - Controlla il log di audit del tuo org GitHub per push sconosciuti tra il 18-20 maggio UTC.
Se hai tempo solo per due, fai #1 e #3. Il resto può aspettare un'ora.
GitHub È Stato Davvero Violato? Facciamo Chiarezza sui Titoli
No, l'infrastruttura di produzione di GitHub.com non è stata violata il 20 maggio 2026. La workstation di un singolo dipendente GitHub è stata compromessa dopo che il dipendente ha installato una estensione VS Code malevola (molto probabilmente Nx Console v18.95.0). L'attaccante, che si fa chiamare TeamPCP (tracciato come UNC6780), ha esfiltrato circa 3.800 repository interni di codice sorgente di GitHub. Il codice dei clienti, gli account dei clienti e i servizi di produzione di GitHub non sono stati coinvolti.
Ecco una versione più chiara di cosa è successo e cosa no.
| Cosa è successo | Cosa NON è successo |
|---|---|
| Il laptop di un dipendente è stato compromesso tramite un'estensione VS Code avvelenata | GitHub.com produzione è stata violata |
| ~3.800 repository interni di codice sorgente sono stati esfiltrati | Repository o account dei clienti sono stati toccati |
| Le credenziali del dipendente GitHub su quell'endpoint sono state rubate | PAT dei clienti, token npm o grant OAuth sono stati rubati dai sistemi GitHub |
| TeamPCP ha chiesto un riscatto (secondo Tom's Hardware) | GitHub ha pagato (nessuna evidenza di pagamento) |
Perché questa distinzione conta? Perché la conclusione non è "github violato." La conclusione è che gli endpoint degli sviluppatori sono ora il punto debole di ogni organizzazione di ingegneria. Ogni segreto del tuo team (PAT GitHub, token npm, chiavi AWS, sessioni vault, chiavi AI provider) vive su un laptop con copertura EDR quasi nulla. Una singola estensione avvelenata che gira nel tuo IDE eredita tutto.
Il portavoce di GitHub, citato in Bleeping Computer, ha confermato che si tratta di un endpoint di un dipendente e che non ci sono dati dei clienti coinvolti. Help Net Security ha aggiunto l'attribuzione a TeamPCP. La catena tecnica di custodia per l'estensione si trova nell'advisory GHSA-c9j4-9m59-847w.
GitHub.com non è stata violata. Un dipendente GitHub sì. Tienimi quel quadro in testa mentre leggi il resto.
Cosa È Successo Davvero: Cronologia della Violazione di Maggio 2026
La storia della violazione GitHub 2026 si è svolta in quattro fasi nell'arco di circa 48 ore. Un'estensione avvelenata è stata pubblicata il 18 maggio alle 12:36 UTC, rimossa 11 minuti dopo, rilevata da GitHub il giorno successivo e divulgata pubblicamente il 20 maggio. La cronologia compatta, con le fonti:
| Ora (UTC) | Evento | Fonte |
|---|---|---|
| 18 maggio, 12:36 | Nx Console v18.95.0 pubblicata su OpenVSX / Visual Studio Marketplace (molto probabilmente) | StepSecurity / GHSA-c9j4-9m59-847w |
| 18 maggio, 12:47 | Versione malevola rimossa — finestra di 11 minuti | StepSecurity |
| 19 maggio | GitHub rileva la compromissione dell'endpoint del dipendente; contiene l'incidente | Portavoce GitHub via Bleeping Computer |
| 20 maggio | Divulgazione pubblica; TeamPCP / UNC6780 rivendica pubblicamente l'attribuzione | Help Net Security, Hackread |
Quei 11 minuti sono il dettaglio più strano. Suggerisce che l'attaccante ruotava le estensioni per eludere il rilevamento del marketplace — lo stesso schema che Koi Security ha documentato nel worm GlassWorm su OpenVSX nell'ottobre 2025. TeamPCP / UNC6780 ha precedentemente rivendicato compromissioni nel 2026 contro Trivy, KICS, LiteLLM, TanStack e MistralAI. Stesso gruppo, stesso schema, obiettivi diversi.
Il mese scorso erano le variabili d'ambiente di Vercel. Oggi sono i repo di GitHub. Lo schema che abbiamo osservato svilupparsi in 9 mesi continua ad espandere il raggio d'azione. Vedi la nostra analisi della risposta alla violazione Vercel per l'incidente correlato.
L'Estensione Probabilmente Responsabile: Nx Console v18.95.0 (E Perché GitHub Non Lo Conferma)
GitHub non ha formalmente nominato l'estensione coinvolta nella compromissione dell'endpoint del dipendente. Le prove forensi sono fortemente allineate con Nx Console v18.95.0, ma questo rimane molto probabilmente, non confermato. Aggiorneremo questo post se GitHub nominerà pubblicamente un'estensione diversa. Considera il resto di questa sezione come la migliore attribuzione disponibile, non un fatto dichiarato.
Quattro elementi di prova circostanziale allineano Nx Console con la divulgazione di GitHub:
- Corrispondenza temporale: La finestra dell'advisory GHSA-c9j4-9m59-847w (18 maggio, 12:36-12:47 UTC) ricade all'interno della finestra di compromissione dell'endpoint del dipendente GitHub riportata nella divulgazione stessa.
- Sovrapposizione IoC forense: L'analisi del payload Nx Console pubblicata da StepSecurity (percorsi file, processi come
__DAEMONIZED, endpoint di rete) corrisponde agli artefatti rilevati sull'endpoint compromesso secondo il rapporto di Wiz. - Schema di attribuzione TeamPCP: TeamPCP / UNC6780 è stato attivo nello spazio della supply chain VS Code (Trivy, KICS, LiteLLM, TanStack, MistralAI nel 2026) con una struttura di payload coerente.
- La finestra di rimozione di 11 minuti: Caratteristica degli attacchi alla supply chain dove l'attaccante controlla il momento di pubblicazione ma il marketplace lo intercetta rapidamente.
Se non hai installato Nx Console, non sei ancora al sicuro. Lo schema d'attacco più ampio (processi __DAEMONIZED, abuso IMDS, esfiltrazione ~/.claude/settings.json) si generalizza a qualsiasi estensione avvelenata. Il triage nella sezione successiva si applica indipendentemente dall'estensione sospetta.

Sei Coinvolto? Il Triage in 5 Minuti
Ci sono tre test rapidi. (1) Hai installato o aggiornato automaticamente un'estensione VS Code tra il 18 maggio alle 12:36 e le 12:47 UTC? (2) Ci sono file IoC da GHSA-c9j4-9m59-847w sul tuo laptop adesso? (3) Hai usato un PAT GitHub dentro VS Code negli ultimi 14 giorni? Esegui tutti e tre in meno di cinque minuti.
Test 1 — Audit delle estensioni
# Elenca tutte le estensioni installate con versioni
code --list-extensions --show-versions
# Controlla specificamente Nx Console v18.95.0
code --list-extensions --show-versions | grep -i "nrwl.angular-console\|nx-console"Qualsiasi cosa aggiornata automaticamente tra il 17 e il 18 maggio merita un secondo sguardo. Se vedi Nx Console esattamente alla versione 18.95.0, sei un probabile caso. La versione corretta è 18.100.0. Disinstalla o passa direttamente al piano d'azione sotto.
Test 2 — Scansione IoC
# Controlla gli artefatti del processo di raccolta credenziali daemonizzato (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
# Indicatore di abuso IMDS (raccolta credenziali AWS)
# Controlla la cronologia della shell per curl imprevisti verso 169.254.169.254
grep -E "169\.254\.169\.254|metadata\.google\.internal" ~/.zsh_history ~/.bash_history 2>/dev/nullUna macchina pulita non dovrebbe restituire nulla per il grep __DAEMONIZED, nessun file .daemonized, e nessun accesso IMDS nella cronologia della shell. Se uno di questi colpisce, considera il laptop compromesso e tratta ogni credenziale che ha toccato negli ultimi 30 giorni come bruciata.
Test 3 — Esposizione PAT
Se hai usato un PAT GitHub (classico o granulare) in qualsiasi terminale VS Code, git integrato, o qualsiasi estensione che chiama le API GitHub negli ultimi 14 giorni, assumilo compromesso e procedi al piano di rotazione sotto. Questo è il default conservativo — non puoi verificare "il token era in memoria mentre l'estensione era attiva." Ruotalo.
Se usi Claude Code, la lista degli IoC include specificamente ~/.claude/settings.json. Consulta la nostra guida ai hooks di Claude Code per capire cosa è memorizzato in quel file e quali chiavi ruotare per prime.
Verdetto. Se uno di questi tre è positivo, smetti di leggere la narrativa. Vai direttamente al piano d'azione nella sezione successiva. I prossimi 55 minuti contano più della post-mortem.
Cosa Devono Fare gli Sviluppatori: Il Manuale d'Emergenza da 60 Minuti
Ruota le credenziali in ordine di priorità. Livello 0 (prossimi 30 min): PAT GitHub e token npm. Livello 1 (oggi): chiavi AWS/cloud, 1Password/Vault, segreti GitHub Actions. Livello 2 (questa settimana): SaaS di terze parti, grant OAuth, chiavi SSH. Livello 3 (quando conveniente): chiavi di sola lettura e pubbliche. Ogni livello corrisponde a una riduzione specifica del raggio d'azione.

ADESSO: Se Pensi di Essere Colpito
Se il triage è risultato positivo, fai queste tre cose in ordine prima di qualsiasi altra cosa.
- Termina il daemon e disinstalla l'estensione sospetta:
# Termina il payload malevolo (GHSA-c9j4-9m59-847w)
pkill -f __DAEMONIZED
pkill -f "nx-console.*18.95.0"
# Disinstalla immediatamente l'estensione sospetta
code --uninstall-extension nrwl.angular-console- Stacca il cavo di rete del laptop se hai qualsiasi evidenza di esfiltrazione attiva. Suona estremo. Lo è. Fallo comunque. Puoi reinvestigare offline.
- Chiama il tuo team di sicurezza o scrivi in
#securitysu Slack prima di fare qualsiasi altra cosa. Se sei da solo, passa direttamente al Livello 0 sotto.
Livello 0 (Prossimi 30 Minuti): GitHub + npm
Revoca del PAT GitHub tramite la CLI gh e l'interfaccia web:
# Conferma con quale utente sei autenticato
gh auth status
# Elenca le installazioni app a cui il token ha accesso (aiuta a inventariare il raggio d'azione)
gh api -H "Accept: application/vnd.github+json" /user/installations
# La CLI gh non può revocare direttamente i PAT classici — usa l'interfaccia web:
# https://github.com/settings/tokens
# Clicca "Revoke" su OGNI token. Non scegliere selettivamente "quello probabilmente ok."
# Riemetti con PAT granulari + scadenza ≤90 giorni:
# https://github.com/settings/personal-access-tokens/new
# Scope un repo alla volta, mai l'intero account.
# Per PAT e installazioni di proprietà dell'org:
gh api /orgs/{ORG}/installationsRotazione token npm:
# Elenca e revoca ogni token npm
npm token list
npm token revoke <token-id-1>
npm token revoke <token-id-2>
# Forza 2FA su auth e scritture
npm profile enable-2fa auth-and-writes
# Per CI: migra al trusted publishing OIDC — niente più token di lunga durata
# Docs: https://docs.npmjs.com/trusted-publishersSe mantieni pacchetti pubblicati, il tuo token npm è la singola credenziale più pericolosa che possiedi. Ruotalo prima di AWS.
Livello 1 (Oggi): Cloud + Vault + Segreti CI
Le chiavi di accesso AWS vengono dopo. Gli IoC mostrano abuso IMDS, quindi qualsiasi utente IAM che ha toccato l'endpoint compromesso è sospetto:
# Elenca le chiavi di accesso per l'utente IAM corrente
aws iam list-access-keys --user-name $(aws sts get-caller-identity --query 'Arn' --output text | cut -d/ -f2)
# Disattiva la vecchia chiave (non eliminarla ancora — lascia che i workload falliscano rumorosamente prima)
aws iam update-access-key --access-key-id AKIA... --status Inactive --user-name <user>
# Crea una nuova chiave
aws iam create-access-key --user-name <user>
# Una volta deployata e verificata, elimina la vecchia chiave
aws iam delete-access-key --access-key-id AKIA... --user-name <user>
# Se qualche istanza EC2 usava IMDSv1, forza IMDSv2 immediatamente
aws ec2 modify-instance-metadata-options --instance-id i-... --http-tokens required1Password CLI: disconnetti ogni dispositivo (op signout --all), rigenera i token di sessione, e verifica gli accessi recenti al vault tramite il log di audit web di 1Password per qualsiasi attività proveniente dall'endpoint compromesso.
HashiCorp Vault: revoca il tuo token utente (vault token revoke -self) e chiedi a un amministratore di emettere un nuovo token con TTL più breve.
Segreti GitHub Actions: se una credenziale ruotata è anche in Actions, aggiornala. Usa gh secret set GITHUB_PAT --body <new-pat> per repo, o l'interfaccia a livello di org per i segreti dell'org.
Chiavi API Anthropic e OpenAI: la lista IoC di GHSA-c9j4-9m59-847w identifica specificamente ~/.claude/settings.json come obiettivo di raccolta. Revoca e riemetti la tua chiave API dalla console Anthropic e qualsiasi chiave OpenAI che hai mai memorizzato in quel file.
Livello 2 (Questa Settimana): SSH + OAuth + Password Vault
Le chiavi SSH si muovono più lentamente ma rientrano comunque nel perimetro. L'estensione aveva accesso in lettura al filesystem su ~/.ssh/:
# Verifica le chiavi SSH esistenti (quando sono state generate?)
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
# Genera una nuova chiave Ed25519
ssh-keygen -t ed25519 -C "rotated-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519_new
# Carica la chiave pubblica su GitHub
gh ssh-key add ~/.ssh/id_ed25519_new.pub --title "rotated-$(date +%Y%m%d)"
# Elimina la vecchia chiave da GitHub tramite interfaccia web, poi verifica che SSH funzioni
ssh -T [email protected]Gestore password del browser e keychain del sistema operativo: ruota qualsiasi password che l'estensione avrebbe potuto vedere tramite gli appunti. L'esposizione realistica riguarda le password che hai copiato negli appunti mentre l'estensione era attiva.
Livello 3 (Quando Conveniente): Audit e Verifica
Verifica il log del tuo org GitHub per la finestra di compromissione. Richiede i permessi di amministratore dell'org:
# Estrai gli eventi push per la finestra del 18-20 maggio
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 dei commit sospetti (autori inaspettati, diff di grandi dimensioni)
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}'
# Aggiorna i grant OAuth
gh auth refresh -s admin:org -s admin:public_keySe il log di audit mostra push dalla finestra di compromissione che non hai effettuato tu, escalate al tuo team di sicurezza e conserva il JSON del log di audit. Non cercare di "annullare" nulla nel repo. Prima conserva le prove.
Abbiamo trattato la stessa logica di rotazione a livelli per la violazione delle variabili d'ambiente Vercel di aprile: stessa struttura, livello diverso.
Il Framework di Audit delle Estensioni in 5 Domande (Usalo Per Sempre)
Prima di installare o fidarti di qualsiasi estensione VS Code, passala attraverso cinque test: età del dominio dell'editore, velocità delle versioni, eventi di attivazione di package.json, ambito dei permessi rispetto al comportamento atteso, e audit del repository open source. Nx Console v18.95.0 avrebbe fallito il Test #2: un improvviso salto di versione dopo una cadenza di rilascio stabile è il classico segnale della supply chain.
- Età del dominio dell'editore. Il dominio dell'editore ha più di un anno? I nuovi editori su domini registrati di recente comportano più rischi. Controlla tramite la pagina dell'editore su Visual Studio Marketplace o
whoissul dominio dell'email dell'editore. - Velocità delle versioni. La cronologia delle versioni mostra una cadenza normale (un rilascio ogni 1-4 settimane) o un picco improvviso (tre rilasci in 24 ore)? La velocità improvvisa è un segnale. Nx Console v18.95.0 era un'anomalia di velocità.
- Eventi di attivazione di
package.json. Apri il file.vsix(è uno zip) e leggiactivationEvents. Le estensioni che si attivano su*(sempre attive) hanno la superficie d'attacco più ampia. Preferisci estensioni che si attivano su un linguaggio o un nome file specifico. - Permessi richiesti rispetto al comportamento atteso. Un'estensione "tema" richiede accesso alla rete? Un'estensione "snippet" ha bisogno di scrittura sul filesystem? Le discrepanze sono segnali di allarme. Confronta con la documentazione sulla sicurezza del runtime delle estensioni di Microsoft.
- Audit del repository open source. Il codice sorgente è su GitHub? Leggi gli ultimi cinque commit alla ricerca di modifiche sospette: hook post-install, blob codificati in base64, chiamate di rete a domini sconosciuti.
Un'estensione che si attiva su * e richiede accesso alla rete è funzionalmente una shell remota con VS Code attaccato sopra.
Lo stesso framework di audit si applica ai server MCP, la prossima superficie della supply chain di tipo estensione. Vedi la nostra analisi dei migliori server MCP 2026 per sapere quali ci fidiamo e perché.
Perché Continua ad Accadere: L'Ondata Supply Chain 2025-2026
La violazione GitHub del 20 maggio è un nodo in un arco di 9 mesi: il worm npm Shai-Hulud (settembre 2025), il worm OpenVSX GlassWorm (ottobre-novembre 2025), Shai-Hulud 2.0 (novembre 2025, oltre 25.000 repo coinvolti), Mini Shai-Hulud (inizio 2026), Nx Console (18 maggio 2026), compromissione dell'endpoint GitHub (20 maggio 2026). Gli endpoint degli sviluppatori sono diventati il nuovo punto debole.
- Settembre 2025, worm npm Shai-Hulud. Malware autopropagante in pacchetti npm popolari. La CISA ha emesso un avviso sulla compromissione diffusa.
- Ottobre-novembre 2025, GlassWorm. Il primo worm autopropagante che prende di mira le estensioni VS Code su OpenVSX. Divulgazione di Koi Security.
- Novembre 2025, Shai-Hulud 2.0. Oltre 25.000 repo esfiltrati. Il Microsoft Security Blog ha pubblicato linee guida per il contenimento.
- Inizio 2026, Mini Shai-Hulud. Variante TeamPCP. Attacchi ripetuti su scala minore contro Trivy, KICS, LiteLLM, TanStack e MistralAI.
- 18 maggio 2026, Nx Console v18.95.0. Vettore molto probabilmente utilizzato per la compromissione dell'endpoint GitHub.
- 20 maggio 2026, GitHub divulga. ~3.800 repository interni esfiltrati. Secondo la serie forense Shai-Hulud di Wiz, lo schema di abuso IMDS è un'evoluzione diretta.
Lo schema è chiaro: i laptop degli sviluppatori contengono ogni segreto dell'org (PAT GitHub, chiavi AWS, token vault, chiavi AI provider) e hanno copertura EDR quasi nulla. Finché questo squilibrio non si inverte, questa ondata continua.
L'IA difensiva è una parte della risposta. Abbiamo trattato questo aspetto nella nostra analisi di come l'IA previene le violazioni dei dati all'inizio di quest'anno.
La Risposta più Ampia di GitHub: Trusted Publishing, FIDO 2FA, Token da 90 Giorni
GitHub stava già implementando quattro controlli sulla supply chain prima del 20 maggio: 2FA obbligatoria per i publisher npm, un limite di 90 giorni sui token di scrittura granulari, la deprecazione di TOTP in favore di FIDO e passkey, e il trusted publishing OIDC per GitHub Actions e GitLab CI. La violazione di maggio accelera una migrazione già in corso; non introduce una nuova politica.
| Controllo | Stato | Azione per te |
|---|---|---|
| 2FA npm obbligatoria | Attivo | Abilita ora: npm profile enable-2fa auth-and-writes |
| Limite di 90 giorni sui token di scrittura granulari | In rollout (i token esistenti vengono forzati a scadere) | Migra ai PAT granulari con TTL ≤90 giorni |
| Deprecazione TOTP, FIDO / passkey | Rollout graduale 2026 | Registra una passkey su ogni account GitHub oggi |
| Trusted publishing OIDC | Attivo per GitHub Actions + GitLab CI | Migra CI dai token npm di lunga durata a OIDC |
Il piano di GitHub per una supply chain npm più sicura precede questo incidente di mesi. Prima ti allinei con esso, più piccolo sarà il raggio d'azione la prossima volta.
Hardening: Come Sopravvivere al Prossimo Attacco
Sei mosse orientate al futuro: fissa le versioni delle estensioni in devcontainer.json, applica una lista consentita a livello di org, esegui EDR con visibilità sui processi delle estensioni, scansiona i segreti a ogni push, limita i PAT a un solo repo, e adotta il trusted publishing OIDC invece di token di lunga durata. Nessuna di queste avrebbe prevenuto ogni incidente — insieme riducono il raggio d'azione da "tutto sul laptop" a "un 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"
}
}In breve:
- Fissa ogni versione di estensione in
devcontainer.jsonper bloccare gli aggiornamenti automatici. - Lista consentita a livello di org puntando
VSCODE_GALLERY_SERVICE_URLa un mirror interno. - EDR con visibilità sui processi IDE: Crowdstrike, SentinelOne, o Microsoft Defender for Endpoint con VS Code nell'ambito.
- Scansione segreti a ogni push: pre-commit e al momento del push, lato server.
- Limita ogni PAT a un repo: nessuno scope
*, mai. - Trusted publishing OIDC: nessun token npm o di registro di lunga durata in CI.
La CVE copy_file_range di Linux della settimana scorsa è una storia correlata: livello diverso, stessa lezione. Il confine di fiducia che hai dimenticato è quello che ti morde.
Se stai valutando agenti di codifica AI in seguito, applica lo stesso framework di audit. Hanno lo stesso profilo di fiducia delle estensioni. La nostra analisi dei migliori agenti di codifica AI 2026 illustra quali agenti guadagnano questa fiducia.
Domande Frequenti
GitHub è stata davvero violata?
No, non nel senso che la maggior parte dei titoli implica. L'infrastruttura di produzione di GitHub.com non è stata violata. Un dipendente GitHub ha installato un'estensione VS Code malevola sulla propria workstation, che ha esfiltrato circa 3.800 repository interni di codice sorgente di GitHub. Il codice dei clienti, gli account dei clienti e i servizi di produzione di GitHub non sono stati coinvolti.
Quale estensione VS Code era effettivamente coinvolta?
GitHub non ha formalmente confermato il nome dell'estensione. Le prove forensi di StepSecurity, Wiz e GHSA-c9j4-9m59-847w indicano molto probabilmente Nx Console v18.95.0, pubblicata il 18 maggio alle 12:36 UTC e rimossa 11 minuti dopo. La trattiamo come "molto probabilmente, non confermata" fino a quando GitHub non la nomina.
Nx Console è sicura da usare adesso?
La versione corretta è 18.100.0. Se hai la vecchia v18.95.0 installata, disinstalla immediatamente, esegui la scansione IoC nella nostra sezione di triage, e reinstalla solo dall'editore ufficiale Nrwl alla versione 18.100.0 o successiva. Verifica il dominio dell'editore prima di reinstallare e fissa la versione in devcontainer.json.
I dati dei clienti sono stati coinvolti nella violazione GitHub?
No. Secondo la dichiarazione ufficiale di GitHub tramite Bleeping Computer, il codice sorgente dei clienti, gli account dei clienti, i token OAuth e i dati di produzione ospitati su GitHub non sono stati accessibili. I dati compromessi sono il codice sorgente interno di GitHub dall'endpoint del dipendente. Trattalo come un incidente sul laptop di un dipendente, non come una violazione della piattaforma.
Come faccio a sapere se il mio PAT GitHub è stato rubato?
Non puoi saperlo con certezza. L'ipotesi conservativa: se hai usato qualsiasi PAT GitHub dentro VS Code negli ultimi 14 giorni, consideralo compromesso e ruotalo. Controlla il log di audit GitHub tramite gh api /orgs/{ORG}/audit-log per eventi push sconosciuti tra il 18-20 maggio UTC, poi revoca e riemetti il token.
Cosa sono TeamPCP e UNC6780?
TeamPCP è un gruppo di attori di minacce; UNC6780 è l'ID di tracciamento assegnato dai vendor di risposta agli incidenti. Hanno rivendicato pubblicamente l'attribuzione della violazione GitHub. Lo stesso gruppo ha rivendicato compromissioni nel 2026 contro Trivy, KICS, LiteLLM, TanStack e MistralAI — un pattern coerente di attacchi alla supply chain VS Code e npm.
Le estensioni VS Code sono in sandbox?
No, non in modo significativo. Le estensioni VS Code girano nel processo Node.js dell'IDE con i pieni privilegi filesystem e di rete dell'utente. Possono leggere ogni file nella tua home directory, incluse le chiavi SSH, ~/.aws/credentials, ~/.claude/settings.json, e la memoria dei processi tramite /proc/*/mem su Linux. Microsoft documenta il modello di sicurezza del runtime e i suoi limiti nella documentazione ufficiale delle estensioni.
Questo ha coinvolto GitHub Codespaces o i runner CI?
Nessuna evidenza finora. La compromissione riguardava una workstation di un dipendente, non l'infrastruttura ospitata da GitHub. Codespaces, i runner di GitHub Actions e l'infrastruttura CI rivolta ai clienti non risultano coinvolti. Aggiorneremo questo post se nuovi IoC cambieranno questo quadro.
Conclusione
Tre cose da portare via:
- GitHub.com non è stata violata. La workstation VS Code di un dipendente sì. La lezione si generalizza a ogni sviluppatore.
- Ruota adesso, framework di audit per sempre. Il piano d'azione da 60 minuti è la patch; il framework di audit in 5 domande è il sistema immunitario.
- Non è un episodio isolato. È il nodo #6 in un'ondata supply chain di 9 mesi che non sta rallentando.
Ultimo aggiornamento: 20 maggio 2026. Aggiorneremo questo post il 27 maggio 2026 con nuovi IoC, advisory dei vendor e qualsiasi conferma dell'estensione da parte di GitHub.
Se il tuo team ha bisogno di aiuto per verificare la superficie delle estensioni VS Code, l'igiene di PAT e token, o per costruire una policy di lista consentita a livello di org, richiedi una consulenza gratuita. Siamo immersi nella sicurezza degli endpoint degli sviluppatori dalla violazione Vercel di aprile, e il piano d'azione qui sopra è quello che usiamo con i clienti dal primo giorno.