Techsy
Contact
Începe
Înapoi la Blog
cybersecurity

GitHub a fost hackuit printr-o extensie VS Code (mai 2026): Planul de urgență de 60 de minute pe care fiecare dezvoltator ar trebui să îl ruleze diseară

Scris de Mert Batur Gürbüz
Actualizat May 20, 2026
17 min citire
Cuprins
GitHub a fost hackuit printr-o extensie VS Code (mai 2026): Planul de urgență de 60 de minute pe care fiecare dezvoltator ar trebui să îl ruleze diseară

GitHub a fost hackuit printr-o extensie VS Code (mai 2026): Planul de urgență de 60 de minute pe care fiecare dezvoltator ar trebui să îl ruleze diseară

Pe 20 mai 2026, GitHub a confirmat că aproximativ 3.800 dintre repositoriile sale interne de cod sursă au fost exfiltrate printr-o extensie malicioasă VS Code instalată pe stația de lucru a unui angajat. Dacă ai folosit un GitHub PAT sau un token npm în interiorul VS Code în ultimele 14 zile, următoarele 60 de minute contează. Acesta este planul de acțiune: ce s-a întâmplat de fapt, dacă ești afectat și ce credențiale trebuie rotite primele.

Puncte Cheie

  • Ce s-a întâmplat: Infrastructura de producție GitHub.com nu a fost compromisă; VS Code-ul unui angajat a instalat o extensie otrăvită (foarte probabil Nx Console v18.95.0) care a exfiltrat PAT-urile și a descărcat ~3.800 de repositorii interne.
  • Datele clienților: Nu sunt afectate. Datele compromise sunt codul sursă intern al GitHub, nu codul sau conturile clienților.
  • Cine este în pericol: Orice dezvoltator care a instalat o extensie VS Code între aproximativ 18 mai, 12:36 UTC și 18 mai, 12:47 UTC (fereastra de 11 minute) sau oricine folosește GitHub PAT-uri cu durată lungă de viață din interiorul VS Code.
  • Ce trebuie făcut acum: Rotește mai întâi GitHub PAT-urile, apoi token-urile npm, apoi cheile AWS/cloud; găsești planul complet în secțiunea „Ce trebuie să facă dezvoltatorii” de mai jos.

TL;DR: Cele 6 lucruri de făcut în următoarea oră

Cel mai rapid mod de a limita impactul poveștii despre extensia vscode github hackuită este să rotești credențialele pe care o extensie otrăvită le poate accesa, să auditezi ce este instalat pe laptopul tău și să verifici jurnalul organizației GitHub pentru fereastra UTC 18-20 mai. Șase acțiuni, ordonate după impact.

  1. Revocă fiecare GitHub Personal Access Token creat sau utilizat în VS Code în ultimele 30 de zile.
  2. Rotește token-urile npm prin npm token revoke și reemite-le cu 2FA + publicare de încredere (trusted publishing).
  3. Scanează laptopul pentru Indicatori de Compromitere (IoC) din GHSA-c9j4-9m59-847w (căi de fișiere, procese; comenzi mai jos).
  4. Auditează code --list-extensions --show-versions și dezinstalează orice nu poți justifica.
  5. Fixează versiunile extensiilor în devcontainer.json și impune o listă de permisiuni (allow-list) la nivel de organizație.
  6. Verifică jurnalul de audit al organizației GitHub pentru push-uri suspecte în repositorii între 18-20 mai UTC.

Dacă ai timp doar pentru două, fă #1 și #3. Restul pot aștepta o oră.

A fost GitHub hackuit cu adevărat? Să clarificăm titlul

Nu, infrastructura de producție GitHub.com nu a fost compromisă pe 20 mai 2026. Stația de lucru a unui singur angajat GitHub a fost compromisă după ce acesta a instalat o extensie VS Code malicioasă (foarte probabil Nx Console v18.95.0). Atacatorul, care se numește TeamPCP (monitorizat ca UNC6780), a exfiltrat aproximativ 3.800 dintre repositoriile interne de cod sursă ale GitHub. Codul clienților, conturile clienților și serviciile de producție GitHub nu sunt afectate.

Iată versiunea mai clară a ceea ce s-a întâmplat și ce nu s-a întâmplat.

Ce s-a întâmplatCe NU s-a întâmplat
Laptopul unui angajat a fost compromis printr-o extensie VS Code otrăvităInfrastructura de producție GitHub.com a fost compromisă
~3.800 de repositorii interne de cod sursă au fost exfiltrateRepositoriile sau conturile clienților au fost atinse
Credentialele angajaților GitHub de pe acel endpoint au fost furatePAT-urile clienților, token-urile npm sau granturile OAuth au fost furate din sistemele GitHub
TeamPCP a cerut o răscumpărare (conform Tom's Hardware)GitHub a plătit (nu există dovezi de plată)

De ce contează această încadrare? Pentru că concluzia nu este că „github a fost hackuit”. Concluzia este că endpoint-urile dezvoltatorilor sunt acum punctul slab al fiecărei organizații de inginerie. Fiecare secret deținut de echipa ta (GitHub PATs, token-uri npm, chei AWS, sesiuni vault, chei pentru provideri AI) se află pe un laptop cu o acoperire EDR minimă sau inexistentă. O singură extensie otrăvită care rulează în IDE-ul tău moștenește totul.

Purtătorul de cuvânt al GitHub, citat în Bleeping Computer, a confirmat încadrarea incidentului la nivelul endpoint-ului angajatului și afirmația „fără date ale clienților”. Help Net Security a adăugat atribuirea către TeamPCP. Lanțul tehnic de custodie pentru extensie se găsește în advisory-ul GHSA-c9j4-9m59-847w.

GitHub.com nu a fost compromis. Un angajat GitHub a fost. Păstrează această perspectivă în minte în timp ce citești restul articolului.

Ce s-a întâmplat de fapt: Cronologia breșei din mai 2026

Povestea breșei github 2026 s-a desfășurat în patru etape pe parcursul a aproximativ 48 de ore. O extensie otrăvită a fost publicată pe 18 mai la 12:36 UTC, eliminată 11 minute mai târziu, detectată de GitHub a doua zi și divulgată public pe 20 mai. Cronologia compactă, cu surse:

Timp (UTC)EvenimentSursă
18 mai, 12:36Nx Console v18.95.0 publicat pe OpenVSX / Visual Studio Marketplace (foarte probabil)StepSecurity / GHSA-c9j4-9m59-847w
18 mai, 12:47Versiunea malicioasă eliminată, fereastră de 11 minuteStepSecurity
19 maiGitHub detectează compromiterea endpoint-ului angajatului; izolează incidentulPurtător de cuvânt GitHub via Bleeping Computer
20 maiDivulgare publică; TeamPCP / UNC6780 revendică public responsabilitateaHelp Net Security, Hackread

Această fereastră de 11 minute este cel mai ciudat detaliu. Sugerează că atacatorul a rotit extensiile pentru a evita detectarea de către marketplace, același model documentat de Koi Security în viermele GlassWorm OpenVSX din octombrie 2025. TeamPCP / UNC6780 a revendicat anterior compromiteri în 2026 împotriva Trivy, KICS, LiteLLM, TanStack și MistralAI. Același grup, același plan de acțiune, ținte diferite.

Luna trecută au fost variabilele de mediu Vercel. Astăzi sunt repositoriile GitHub. Modelul pe care l-am urmărit evoluând timp de 9 luni continuă să deplaseze impactul spre exterior. Vezi analiza noastră despre răspunsul la breșa Vercel pentru incidentul înrudit.

Extensia probabil vinovată: Nx Console v18.95.0 (Și de ce GitHub nu confirmă)

GitHub nu a numit oficial extensia implicată în compromiterea endpoint-ului angajatului. Dovezile forensice se aliniază puternic cu Nx Console v18.95.0, dar acest lucru rămâne foarte probabil, neconfirmat. Vom actualiza acest post dacă GitHub numește public o altă extensie. Consideră restul acestei secțiuni ca fiind cea mai bună atribuire disponibilă, nu un fapt declarat.

Patru piese de dovezi circumstanțiale aliniază Nx Console cu divulgarea GitHub:

  1. Potrivirea temporală: Fereastra advisory-ului GHSA-c9j4-9m59-847w (18 mai, 12:36-12:47 UTC) se încadrează în fereastra de compromitere a endpoint-ului angajatului GitHub din propria divulgare a GitHub.
  2. Suprapunerea IoC forensici: Analiza payload-ului Nx Console publicată de StepSecurity (căi de fișiere, procese precum __DAEMONIZED, endpoint-uri de rețea) se potrivește cu artefactele văzute pe endpoint-ul compromis conform raportului Wiz.
  3. Modelul de atribuire TeamPCP: TeamPCP / UNC6780 a fost activ în spațiul lanțului de aprovizionare VS Code (Trivy, KICS, LiteLLM, TanStack, MistralAI în 2026) cu o structură consistentă a payload-ului.
  4. Fereastra de eliminare de 11 minute: Caracteristică atacurilor asupra lanțului de aprovizionare unde atacatorul controlează momentul publicării, dar marketplace-ul îl detectează rapid.

Dacă nu ai instalat Nx Console, nici măcar atunci nu ești complet în siguranță. Modelul larg de atac (procesele __DAEMONIZED, abuzul IMDS, exfiltrarea ~/.claude/settings.json) se generalizează la orice extensie otrăvită. Triajul din secțiunea următoare se aplică indiferent de extensia suspectată.

O singură extensie VS Code emite săgeți către zece ținte de credențiale etichetate, inclusiv GitHub PAT, token npm, AWS IMDS, 1Password CLI, Vault și setări Claude Code, ilustrând impactul total pe care îl poate avea o extensie malicioasă
Sursă: editorial techsy.io, sfera de credențiale accesibilă dintr-un singur proces de extensie VS Code

Ești afectat? Triajul de 5 minute

Există trei teste rapide. (1) Ai instalat sau ai făcut auto-update la o extensie VS Code între 18 mai, 12:36 și 12:47 UTC? (2) Se află vreunul dintre fișierele IoC din GHSA-c9j4-9m59-847w pe laptopul tău chiar acum? (3) Ai folosit un GitHub PAT în interiorul VS Code în ultimele 14 zile? Rulează toate trei în sub cinci minute.

Testul 1, Auditul extensiilor

bash
# 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"

Orice s-a actualizat automat între 17 și 18 mai merită o a doua privire. Dacă vezi Nx Console exact la versiunea 18.95.0, este o potrivire probabilă. Versiunea patch-uită este 18.100.0. Fie dezinstaleaz-o, fie treci direct la planul de acțiune de mai jos.

Testul 2, Scanarea IoC

bash
# 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

Un laptop curat nu ar trebui să returneze nimic pentru grep-ul __DAEMONIZED, fără fișiere .daemonized și fără hit-uri IMDS în istoricul shell-ului. Dacă apare oricare dintre acestea, presupune că laptopul este compromis și tratează fiecare credențială atinsă în ultimele 30 de zile ca fiind arsă (compromisă).

Testul 3, Expunerea PAT

Dacă ai folosit un GitHub PAT (clasic sau granular fin) în orice terminal VS Code, git integrat sau orice extensie care apelează API-ul GitHub în ultimele 14 zile, presupune că este compromis și treci la planul de rotație de mai jos. Aceasta este abordarea conservatoare implicită; nu poți audita „era token-ul în memorie cât timp extensia era activă”. Rotește-l.

Dacă folosești Claude Code, lista IoC include specific ~/.claude/settings.json. Verifică ghidul nostru pentru hook-urile Claude Code pentru a vedea ce este stocat în acel fișier și ce chei trebuie rotite primele.

Verdict. Dacă oricare dintre aceste trei teste dă un rezultat pozitiv, oprește-te din citit narativul. Treci direct la planul de acțiune din secțiunea următoare. Următoarele 55 de minute contează mai mult decât analiza post-mortem.

Ce trebuie să facă dezvoltatorii: Planul de urgență de 60 de minute

Rotește credențialele în ordinea priorității. Nivelul 0 (următoarele 30 min): GitHub PATs și token-uri npm. Nivelul 1 (astăzi): Chei AWS / cloud, 1Password / Vault, secrete GitHub Actions. Nivelul 2 (săptămâna aceasta): SaaS terțe, granturi OAuth, chei SSH. Nivelul 3 (când este convenabil): Chei read-only și publice. Fiecare nivel corespunde unei reduceri specifice a impactului.

Piramida de rotație a credențialelor în patru niveluri arătând Nivelul 0 GitHub PATs și token-uri npm în roșu, Nivelul 1 AWS și token-uri vault în amber, Nivelul 2 SSH și OAuth în galben, Nivelul 3 chei read-only în gri, fiecare nivel etichetat cu bugetul de timp
Sursă: editorial techsy.io, prioritatea de rotație în trepte pentru planul de 60 de minute

CHIAU ACUM: Dacă crezi că ești afectat

Dacă triajul a dat pozitiv, fă aceste trei lucruri în ordine înainte de orice altceva.

  1. Oprește daemon-ul și dezinstalează extensia suspectă:
bash
# 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
  1. Scoate cablul de rețea al laptopului dacă ai orice dovadă a unei exfiltrări active. Sună extrem. Și este. Fă-o oricum. Poți reinvestiga offline.
  2. Sună echipa de securitate sau postează în canalul Slack #security înainte de a rula orice altceva. Dacă lucrezi singur, treci la Nivelul 0 de mai jos.

Nivelul 0 (Următoarele 30 de minute): GitHub + npm

Revocarea GitHub PAT prin CLI-ul gh și interfața web de setări:

bash
# 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

Rotația token-urilor npm:

bash
# 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

Dacă menții pachete publicate, token-ul tău npm este cea mai periculoasă credențială pe care o deții. Rotește-o înainte de AWS.

Nivelul 1 (Astăzi): Cloud + Vault-uri + Secrete CI

Urmează cheile de acces AWS. IoC-urile arată abuzul IMDS, așa că orice utilizator IAM care a atins endpoint-ul compromis este suspect:

bash
# 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 required

1Password CLI: deconectează-te de pe fiecare dispozitiv (op signout --all), regenerează token-urile de sesiune și auditează accesul recent la vault prin jurnalul de audit web 1Password pentru orice a rulat de pe endpoint-ul compromis.

HashiCorp Vault: revocă token-ul de utilizator (vault token revoke -self) și cere unui administrator să emită unul nou cu un TTL mai scurt.

Secrete GitHub Actions: dacă orice credențială rotită se află și în Actions, actualizeaz-o. Folosește gh secret set GITHUB_PAT --body <new-pat> per repo, sau interfața la nivel de organizație pentru secretele org.

Cheile API Anthropic și OpenAI: lista IoC GHSA-c9j4-9m59-847w menționează specific ~/.claude/settings.json ca țintă de colectare. Revocă și reemite cheia API din consola Anthropic și orice cheie OpenAI stocată vreodată în acel fișier.

Nivelul 2 (Săptămâna aceasta): SSH + OAuth + Manageri de parole

Cheile SSH se mișcă mai lent, dar sunt tot în sfera de impact. Extensia avea acces de citire la sistemul de fișiere pe ~/.ssh/:

bash
# 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]

Managerul de parole din browser și keychain-ul OS: rotește orice parolă pe care extensia ar fi putut plauzibil să o vadă prin clipboard. Expunerea realistă o constituie parolele copiate în clipboard cât timp extensia era activă.

Nivelul 3 (Când este convenabil): Audit + Verificare

Auditează jurnalul organizației GitHub pentru fereastra de compromitere. Acest lucru necesită drepturi de admin org:

bash
# 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

Dacă jurnalul de audit arată push-uri din fereastra de compromitere pe care nu le-ai făcut tu, escaladează către echipa de securitate și păstrează JSON-ul jurnalului de audit. Nu încerca să „anulezi” nimic în repo. Păstrează dovezile mai întâi.

Am acoperit aceeași logică de rotație în trepte pentru breșa variabilelor de mediu Vercel din aprilie: aceeași formă, strat diferit.

Cadrul de audit al extensiilor în 5 întrebări (Folosește-l mereu)

Înainte de a instala sau de a avea încredere în orice extensie VS Code, trece-o prin cinci teste: vechimea domeniului publisher-ului, viteza versiunilor, evenimentele de activare din package.json, sfera permisiunilor vs comportamentul așteptat și auditul repo-ului open-source. Nx Console v18.95.0 ar fi picat Testul #2: un salt brusc de versiune după un cadru stabil de lansare este indicatorul clasic al unui atac asupra lanțului de aprovizionare.

  1. Vechimea domeniului publisher-ului. Domeniul publisher-ului are mai mult de un an? Publisher-ii noi pe domenii înregistrate recent prezintă un risc mai mare. Verifică prin pagina publisher-ului din Visual Studio Marketplace sau prin whois pe domeniul email-ului publisher-ului.
  2. Viteza versiunilor. Istoricul versiunilor arată un cadru normal (o lansare la fiecare 1-4 săptămâni) sau un vârf brusc (trei lansări în 24 de ore)? Viteza bruscă este un semnal. Nx Console v18.95.0 a fost o anomalie de viteză.
  3. Evenimente de activare package.json. Deschide fișierul .vsix (este un zip) și citește activationEvents. Extensiile care se activează pe * (mereu active) au cea mai mare suprafață de atac. Preferă extensiile care se activează pe o limbă specifică sau un nume de fișier.
  4. Permisiuni necesare vs comportament așteptat. O extensie de „temă” solicită acces la rețea? O extensie de „snippet” are nevoie de scriere în sistemul de fișiere? Nepotrivirile sunt steaguri roșii. Verifică încrucișat cu documentația de securitate runtime a extensiilor de la Microsoft.
  5. Auditul repo-ului open-source. Sursa este pe GitHub? Citește ultimele cinci commit-uri pentru modificări suspecte: hook-uri post-instalare, blob-uri codate base64, apeluri de rețea către domenii nefamiliare.

O extensie care se activează pe * și cere acces la rețea este funcțional un shell remote cu VS Code atașat de el.

Același cadru de audit se aplică serverelor MCP, următoarea suprafață de atac a lanțului de aprovizionare de tip extensie. Vezi analiza noastră despre cele mai bune servere MCP 2026 pentru a vedea în care avem încredere și de ce.

De ce se întâmplă asta mereu: Valul lanțului de aprovizionare 2025-2026

Breșa GitHub din 20 mai este un nod într-un arc de 9 luni: viermele npm Shai-Hulud (sept. 2025), viermele OpenVSX GlassWorm (oct.-nov. 2025), Shai-Hulud 2.0 (nov. 2025, >25.000 de repositorii afectate), Mini Shai-Hulud (începutul lui 2026), Nx Console (18 mai 2026), compromiterea endpoint-ului GitHub (20 mai 2026). Endpoint-urile dezvoltatorilor au devenit noul punct slab.

  • Sept. 2025, viermele npm Shai-Hulud. Malware auto-propagant în pachete npm populare. CISA a emis o alertă privind compromiterea widespread.
  • Oct.-Nov. 2025, GlassWorm. Primul vierme auto-propagant care țintește extensiile VS Code pe OpenVSX. Divulgare Koi Security.
  • Nov. 2025, Shai-Hulud 2.0. Peste 25.000 de repositorii exfiltrate. Microsoft Security Blog a publicat ghiduri de contenție.
  • Începutul lui 2026, Mini Shai-Hulud. Varianta TeamPCP. Repetări la scară mai mică împotriva Trivy, KICS, LiteLLM, TanStack și MistralAI.
  • 18 mai 2026, Nx Console v18.95.0. Vector foarte probabil pentru compromiterea endpoint-ului GitHub.
  • 20 mai 2026, GitHub divulgă. ~3.800 de repositorii interne exfiltrate. Conform seriei forensice Shai-Hulud de la Wiz, modelul de abuz IMDS este o evoluție directă.

Modelul este clar: laptopurile dezvoltatorilor conțin fiecare secret din organizație (GitHub PATs, chei AWS, token-uri vault, chei provideri AI) și au o acoperire EDR aproape nulă. Până când acest dezechilibru se inversează, acest val continuă.

AI-ul defensiv este o parte a răspunsului. Am acoperit acest unghi în analiza noastră despre cum previne AI breșele de date earlier this year.

Răspunsul mai larg al GitHub: Publicare de încredere, FIDO 2FA, Token-uri de 90 de zile

GitHub implementase deja patru controale ale lanțului de aprovizionare înainte de 20 mai: 2FA obligatorie pentru publisher-ii npm, o limită de 90 de zile pentru token-urile de scriere granulare, deprecierea TOTP în favoarea FIDO și passkeys, și publicarea de încredere OIDC pentru GitHub Actions și GitLab CI. Breșa din mai accelerează o migrare deja începută; nu introduce o politică nouă.

ControlStatusAcțiune pentru tine
2FA npm obligatorieActivActivează acum: npm profile enable-2fa auth-and-writes
Limită de 90 de zile pentru token-uri de scriere granulareÎn derulare (token-urile existente forțate să expire)Migrează la PAT-uri granulare fine cu TTL ≤90 zile
Deprecierea TOTP, FIDO / passkeysLansare fazată 2026Înregistrează un passkey pe fiecare cont GitHub astăzi
Publicare de încredere OIDCActiv pentru GitHub Actions + GitLab CIMigrează CI de la token-uri npm cu durată lungă la OIDC

Planul GitHub pentru un lanț de aprovizionare npm mai sigur precede acest incident cu luni. Cu cât te aliniezi mai rapid la el, cu atât impactul va fi mai mic data viitoare.

Consolidare: Cum să supraviețuiești următorului incident

Șase mutări orientate spre viitor: fixează versiunile extensiilor în devcontainer.json, impune o listă de permisiuni (allow-list) la nivel de organizație, rulează EDR cu vizibilitate asupra proceselor de extensie, scanează secretele la fiecare push, limitează PAT-urile la un singur repo și adoptă publicarea de încredere OIDC în locul token-urilor cu durată lungă de viață. Niciuna dintre acestea nu ar fi prevenit fiecare incident, dar împreună reduc impactul de la „totul de pe laptop” la „un singur repo”.

json
{
  "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"
  }
}

Pe scurt:

  • Fixează fiecare versiune de extensie în devcontainer.json pentru a opri auto-update-ul.
  • Listă de permisiuni la nivel de organizație direcționând VSCODE_GALLERY_SERVICE_URL către o oglindă internă.
  • EDR cu vizibilitate procese IDE: Crowdstrike, SentinelOne sau Microsoft Defender for Endpoint cu VS Code în sferă.
  • Scanare secrete la fiecare push: pre-commit și la push, lato-server.
  • Limitează fiecare PAT la un singur repo: fără scope-uri *, niciodată.
  • Publicare de încredere OIDC: fără token-uri npm sau de registry cu durată lungă de viață în CI.

CVE-ul copy_file_range Linux de săptămâna trecută este o poveste înrudită: strat diferit, aceeași lecție. Limita de încredere pe care ai uitat-o este cea care te lovește.

Dacă iei în considerare agenți de codare AI în continuare, aplică același cadru de audit. Au același profil de încredere ca extensiile. Analiza noastră despre cei mai buni agenți de codare AI 2026 parcurge care agenți câștigă această încredere.

Întrebări frecvente

A fost GitHub hackuit?

Nu, nu în sensul implicat de majoritatea titlurilor. Infrastructura de producție GitHub.com nu a fost compromisă. Un angajat GitHub a instalat o extensie VS Code malicioasă pe stația sa de lucru, care a exfiltrat aproximativ 3.800 de repositorii interne de cod sursă ale GitHub. Codul clienților, conturile clienților și serviciile de producție GitHub nu sunt afectate.

Ce extensie VS Code a fost implicată efectiv?

GitHub nu a confirmat oficial numele extensiei. Dovezile forensice de la StepSecurity, Wiz și GHSA-c9j4-9m59-847w indică foarte probabil Nx Console v18.95.0, publicată pe 18 mai la 12:36 UTC și eliminată 11 minute mai târziu. Tratăm acest lucru ca „foarte probabil, neconfirmat” până când GitHub o numește.

Este Nx Console sigur de utilizat acum?

Versiunea patch-uită este 18.100.0. Dacă ai o versiune mai veche v18.95.0 instalată, dezinstaleaz-o imediat, rulează scanarea IoC din secțiunea noastră de triaj și reinstaleaz-o doar de la publisher-ul oficial Nrwl la versiunea 18.100.0 sau ulterioară. Verifică domeniul publisher-ului înainte de reinstalare și fixează versiunea în devcontainer.json.

Au fost afectate datele clienților de breșa GitHub?

Nu. Conform declarației oficiale GitHub prin Bleeping Computer, codul sursă al clienților, conturile clienților, token-urile OAuth și datele de producție găzduite de GitHub nu au fost accesate. Datele compromise sunt codul sursă intern al GitHub de pe endpoint-ul angajatului. Tratează acest lucru ca un incident de laptop al angajatului, nu ca o breșă a platformei.

Cum știu dacă GitHub PAT-ul meu a fost furat?

Nu poți ști cu certitudine. Presupunerea conservatoare: dacă ai folosit orice GitHub PAT în interiorul VS Code în ultimele 14 zile, tratează-l ca fiind compromis și rotește-l. Verifică jurnalul de audit GitHub prin gh api /orgs/{ORG}/audit-log pentru evenimente de push nefamiliare între 18-20 mai UTC, apoi revocă și reemite token-ul.

Ce sunt TeamPCP și UNC6780?

TeamPCP este un grup de actori amenințători; UNC6780 este ID-ul de tracking asignat de vendorii de răspuns la incidente. Ei au revendicat public responsabilitatea pentru breșa GitHub. Același grup a revendicat compromiteri în 2026 împotriva Trivy, KICS, LiteLLM, TanStack și MistralAI, un model consistent de țintire a lanțului de aprovizionare VS Code și npm.

Sunt extensiile VS Code sandbox-ed?

Nu, nu într-un mod semnificativ. Extensiile VS Code rulează în procesul Node.js al IDE-ului cu privilegii complete de sistem de fișiere și rețea ale utilizatorului. Pot citi fiecare fișier din directorul home, inclusiv chei SSH, ~/.aws/credentials, ~/.claude/settings.json și memoria proceselor prin /proc/*/mem pe Linux. Microsoft documentează modelul de securitate runtime și limitele sale în documentația oficială a extensiilor.

A afectat acest incident GitHub Codespaces sau runner-ele CI?

Nu există dovezi până acum. Compromiterea a fost o stație de lucru a unui angajat, nu infrastructura găzduită de GitHub. Codespaces, runner-ele GitHub Actions și infrastructura CI orientată către clienți nu sunt raportate ca fiind afectate. Vom actualiza acest post dacă noi IoC schimbă această imagine.

Concluzie

Trei lucruri de reținut:

  1. GitHub.com nu a fost hackuit. Stația de lucru VS Code a unui angajat a fost. Lecția se generalizează la fiecare dezvoltator.
  2. Rotește acum, auditează mereu. Planul de 60 de minute este patch-ul; cadrul de audit în 5 întrebări este sistemul imunitar.
  3. Acesta nu este un caz izolat. Este nodul #6 într-un val al lanțului de aprovizionare de 9 luni care nu încetinește.

Ultima actualizare: 20 mai 2026. Vom revizui acest post pe 27 mai 2026 cu noi IoC, advisories de la vendori și orice atribuire de extensie confirmată de GitHub.

Dacă echipa ta are nevoie de ajutor pentru a audita suprafața extensiilor VS Code, igiena PAT și token-urilor sau pentru a construi o politică de listă de permisiuni la nivel de organizație, obține o consultație gratuită. Ne-am concentrat intens pe securitatea endpoint-urilor dezvoltatorilor încă de la breșa Vercel din aprilie, iar planul de mai sus este cel pe care îl rulăm cu clienții din prima zi.

Etichete

securitate ciberneticăatac asupra lanțului de aprovizionarevscodegithubsecuritatea dezvoltatorilorrăspuns la incidenteGHSA-c9j4-9m59-847w

Distribuie acest articol

Articole similare

Mai multe din cybersecurity

cybersecurity
Jul 23, 2026

Lista de verificare a securității SaaS înainte de lansare: 40 de verificări pe care le facem primele (2026)

Majoritatea listelor de verificare pentru lansare îți spun ce trebuie securizat, dar nu îți arată niciodată cum. Aceasta include codul: 40 de verificări pre-lansare pentru secrete, autentificare, izolarea chiriașilor, dependențe, anteturi și monitorizare, plus greșeala pe care o prindem în aproape fiecare revizuire.

12 min read min citire
Citește
cybersecurity
May 8, 2026

Cum previne IA încălcările de date: 7 apărări care au oprit atacuri reale (2026)

Pe 30 aprilie 2026, aproximativ 275 de milioane de elevi au aflat că LMS-ul lor fusese compromis. Ar fi putut IA să o prevină? Iată 7 apărări care deja o fac și cum să le integrezi în aplicația ta săptămâna aceasta.

13 min read min citire
Citește
cybersecurity
May 5, 2026

Copy Fail (CVE-2026-31431): Ghidul de urgență pentru patch-uri în 60 de minute pentru Linux, Kubernetes și infrastructura AI

Microsoft a dezvăluit CVE-2026-31431 („Copy Fail”) pe 1 mai 2026 — o escaladare a privilegiilor în kernel-ul Linux care ocolește seccomp RuntimeDefault din Kubernetes și vizează fiecare cluster de inferență multi-chiriat, runtime de agent și runner CI. Iată ghidul de patch-uri pentru 60 de minute, cu comenzi specifice fiecărei distribuții, un profil seccomp gata de copiat și analiza expunerii infrastructurii AI pe care nimeni altcineva nu o publică.

12 min read min citire
Citește
Vezi toate articolele
Începe Proiectul Tău

Gata să construim ceva extraordinară?

Hai să-ți transformăm viziunea în realitate. Echipa noastră e pregătită să te ajute să creezi software care face diferența.

Programează un apel de 30 minVezi proiectele noastre

Cele mai populare din bibliotecă

Skill-uri Claude

Vezi toate
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automatizări AI

Vezi toate
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Cele mai populare din bibliotecă

Skill-uri Claude

Vezi toate
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Automatizări AI

Vezi toate
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Servicii

  • Soluții Enterprise
  • Aplicații Mobile
  • Aplicații Web

Soluții

  • Sisteme CRM
  • Integrare AI
  • Soluții ERP
  • Agenți Vocali
  • Automatizarea Proceselor
  • Cibersécurité

Bibliotecă

  • Blog
  • Portofoliu

Comunitate

  • Automatizări AI
  • Skill-uri Claude

Tool-uri

  • Calculator cost aplicație mobilă
  • Calculator cost API OpenAI / LLM
  • Calculator cost MVP
  • Calculator cost agent AI vocal

Companie

  • Despre
  • Parteneri
  • Contact

Mențiuni legale

  • Politica de confidențialitate
  • Termeni și condiții
  • Politica cookie

Servicii

  • Soluții Enterprise
  • Aplicații Mobile
  • Aplicații Web

Soluții

  • Sisteme CRM
  • Integrare AI
  • Soluții ERP
  • Agenți Vocali
  • Automatizarea Proceselor
  • Cibersécurité

Bibliotecă

  • Blog
  • Portofoliu

Comunitate

  • Automatizări AI
  • Skill-uri Claude

Tool-uri

  • Calculator cost aplicație mobilă
  • Calculator cost API OpenAI / LLM
  • Calculator cost MVP
  • Calculator cost agent AI vocal

Companie

  • Despre
  • Parteneri
  • Contact
Mențiuni legalePolitica de confidențialitateTermeni și condițiiPolitica cookie
TECHSY
© 2026 Techsy. Toate drepturile rezervate.