cybersecurity

GitHub, VS Code Uzantısıyla Hacklendi (Mayıs 2026): Her Geliştiricinin Bu Gece Çalıştırması Gereken 60 Dakikalık Acil Eylem Planı

Yazan Mert Batur
Güncellendi May 20, 2026
15 okuma
GitHub, VS Code Uzantısıyla Hacklendi (Mayıs 2026): Her Geliştiricinin Bu Gece Çalıştırması Gereken 60 Dakikalık Acil Eylem Planı

GitHub, VS Code Uzantısıyla Hacklendi (Mayıs 2026): Her Geliştiricinin Bu Gece Çalıştırması Gereken 60 Dakikalık Acil Eylem Planı

20 Mayıs 2026'da GitHub, bir çalışanın iş istasyonuna yüklenen kötü amaçlı bir VS Code uzantısı aracılığıyla dahili kaynak kodu depolarının yaklaşık 3.800'ünün sızdırıldığını doğruladı. Son 14 gün içinde VS Code'da bir GitHub PAT veya npm token kullandıysanız, önünüzdeki 60 dakika kritik öneme sahip. İşte eylem planı: gerçekte ne olduğu, etkilenip etkilenmediğiniz ve önce neyi yenilemeniz gerektiği.

Önemli Çıkarımlar

  • Ne oldu: GitHub.com üretim ortamı ihlal edilmedi; bir çalışanın VS Code'una zehirlenmiş bir uzantı yüklendi (büyük olasılıkla Nx Console v18.95.0) ve bu uzantı PAT'leri sızdırarak yaklaşık 3.800 dahili repo'yu dışarı aktardı.
  • Müşteri verileri: Etkilenmedi. Ele geçirilen veriler GitHub'ın dahili kaynak kodudur; müşteri kodları veya hesaplar değil.
  • Risk altında kim var: Yaklaşık 18 Mayıs 12:36 UTC ile 12:47 UTC arasındaki 11 dakikalık pencerede bir VS Code uzantısı yükleyen ya da güncelleyen herkes ya da VS Code içinden uzun ömürlü GitHub PAT kullanan herkes.
  • Şimdi ne yapmalı: Önce GitHub PAT'leri yenileyin, ikinci sırada npm token'ları, üçüncü sırada AWS/bulut anahtarları — tam eylem planı aşağıdaki "Geliştiricilerin Yapması Gerekenler" bölümünde.

ÖZ: Önümüzdeki Bir Saat İçinde Yapılacak 6 Şey

GitHub hacklendi VS Code uzantısı haberinden kaynaklanan hasarı en aza indirmenin en hızlı yolu, zehirlenmiş bir uzantının erişebileceği kimlik bilgilerini yenilemek, dizüstü bilgisayarınızda yüklü uzantıları denetlemek ve GitHub org günlüğünüzde 18-20 Mayıs UTC penceresini kontrol etmektir. Etkiye göre sıralanmış altı eylem.

  1. İptal edin: Son 30 günde VS Code içinde oluşturulan veya kullanılan tüm GitHub Kişisel Erişim Token'larını.
  2. Yenileyin: npm token'larını npm token revoke komutuyla iptal edip 2FA + güvenilir yayın ile yeniden düzenleyin.
  3. Tarayın: GHSA-c9j4-9m59-847w kapsamındaki IoC'ler için dizüstü bilgisayarınızı kontrol edin (dosya yolları, süreçler; komutlar aşağıda).
  4. Denetleyin: code --list-extensions --show-versions çıktısını inceleyin ve gerekçelendiremediğiniz her şeyi kaldırın.
  5. Sabitleyin: devcontainer.json dosyasında uzantı sürümlerini sabitleyin ve org düzeyinde bir izin listesi uygulayın.
  6. Kontrol edin: 18-20 Mayıs UTC arasındaki tanımadığınız repo push'ları için GitHub org denetim günlüğünüzü inceleyin.

Yalnızca iki şeye zamanınız varsa, #1 ve #3'ü yapın. Geri kalanı bir saat bekleyebilir.

GitHub Gerçekten Hacklenildi mi? Başlığı Düzeltelim

Hayır, GitHub.com'un üretim altyapısı 20 Mayıs 2026'da ihlal edilmedi. Tek bir GitHub çalışanının iş istasyonu, çalışanın kötü amaçlı bir VS Code uzantısı (büyük olasılıkla Nx Console v18.95.0) yüklemesinin ardından ele geçirildi. TeamPCP (takip kimliği: UNC6780) olarak bilinen saldırgan, GitHub'ın dahili kaynak kodu depolarından yaklaşık 3.800'ünü dışarı aktardı. Müşteri kodları, müşteri hesapları ve GitHub'ın üretim hizmetleri etkilenmedi.

İşte yaşananların ve yaşanmayanların daha net bir özeti:

Ne olduNe OLMADI
Bir çalışanın dizüstü bilgisayarı, zehirlenmiş bir VS Code uzantısıyla ele geçirildiGitHub.com üretim ortamı ihlal edildi
~3.800 dahili kaynak kodu deposu sızdırıldıMüşteri depoları veya hesapları erişime açıldı
O uç noktadaki GitHub çalışan kimlik bilgileri çalındıMüşteri PAT'leri, npm token'ları veya OAuth izinleri GitHub sistemlerinden çalındı
TeamPCP fidye talebinde bulundu (Tom's Hardware)GitHub ödeme yaptı (ödeme kanıtı yok)

Bu çerçeveleme neden önemli? Çünkü asıl ders "github hacklendi" değil. Asıl ders şu: geliştirici uç noktaları artık her mühendislik organizasyonunun en zayıf halkasıdır. Takımınızın sahip olduğu her gizli bilgi (GitHub PAT'leri, npm token'ları, AWS anahtarları, vault oturumları, yapay zeka sağlayıcı anahtarları) neredeyse hiç EDR koruması olmayan bir dizüstü bilgisayarda duruyor. IDE'nizde çalışan tek bir zehirlenmiş uzantı bunların tamamına erişebilir.

GitHub'ın sözcüsü Bleeping Computer aracılığıyla çalışan uç noktası çerçevesini ve "müşteri verisi etkilenmedi" açıklamasını doğruladı. Help Net Security TeamPCP atıfını ekledi. Uzantıya ilişkin teknik kanıt zinciri GHSA-c9j4-9m59-847w danışma belgesinde yer almaktadır.

GitHub.com ihlal edilmedi. Bir GitHub çalışanı ihlal edildi. Yazının geri kalanını okurken bu ayrımı aklınızda tutun.

Gerçekte Ne Oldu: Mayıs 2026 İhlalinin Zaman Çizelgesi

GitHub 2026 ihlali yaklaşık 48 saat içinde dört aşamada yaşandı. Zehirlenmiş uzantı 18 Mayıs 12:36 UTC'de yayımlandı, 11 dakika sonra kaldırıldı, GitHub ertesi gün tespit etti ve 20 Mayıs'ta kamuoyuyla paylaştı. Kaynaklarıyla birlikte özet zaman çizelgesi:

Saat (UTC)OlayKaynak
18 Mayıs, 12:36Nx Console v18.95.0, OpenVSX / Visual Studio Marketplace'te yayımlandı (büyük olasılıkla)StepSecurity / GHSA-c9j4-9m59-847w
18 Mayıs, 12:47Kötü amaçlı sürüm kaldırıldı — 11 dakikalık pencereStepSecurity
19 MayısGitHub çalışan uç noktası ihlaline ait bulgular tespit edildi; olay kontrol altına alındıBleeping Computer aracılığıyla GitHub sözcüsü
20 MayısKamuoyuna açıklama; TeamPCP / UNC6780 atfı duyurulduHelp Net Security, Hackread

11 dakikalık pencere en ilginç ayrıntı. Bu, saldırganın yayın zamanını kontrol ettiği ancak marketplace'in hızlıca yakaladığı tedarik zinciri saldırılarının tipik kalıbına işaret ediyor; aynı örüntü Koi Security'nin Ekim 2025'te belgelediği GlassWorm OpenVSX solucanında da görüldü. TeamPCP / UNC6780, 2026'da Trivy, KICS, LiteLLM, TanStack ve MistralAI'ye yönelik saldırıları da üstlendi. Aynı grup, aynı yöntem, farklı hedefler.

Geçen ay Vercel'in ortam değişkenleri hedef alındı, bugün GitHub'ın depoları. 9 aydır gözlemlediğimiz bu örüntü, etki alanını sürekli genişletiyor. Kardeş olay için Vercel ihlal müdahalesi yazımızı inceleyebilirsiniz.

Suçlanan Uzantı: Nx Console v18.95.0 (Ve GitHub Neden Doğrulamıyor)

GitHub, çalışan uç noktası ihlaline karışan uzantının adını resmi olarak açıklamadı. Adli kanıtlar güçlü biçimde Nx Console v18.95.0'a işaret ediyor, ancak bu büyük olasılıkla doğru, kesinleşmiş değil. GitHub farklı bir uzantı adı açıklarsa bu yazıyı güncelleyeceğiz. Bu bölümün geri kalanını kesinleşmiş gerçek olarak değil, mevcut en iyi atıf olarak değerlendirin.

Nx Console'u GitHub açıklamasıyla ilişkilendiren dört dolaylı kanıt şöyle:

  1. Zaman örtüşmesi: GHSA-c9j4-9m59-847w danışma penceresi (18 Mayıs 12:36-12:47 UTC), GitHub'ın kendi açıklamasındaki çalışan uç noktası ihlal penceresinin içine düşüyor.
  2. Adli IoC örtüşmesi: StepSecurity'nin yayımladığı Nx Console yük analizi (dosya yolları, __DAEMONIZED gibi süreçler, ağ uç noktaları), Wiz'in raporuna göre ele geçirilen uç noktada gözlemlenen eserlerle örtüşüyor.
  3. TeamPCP atıf örüntüsü: TeamPCP / UNC6780, 2026'da tutarlı yük yapısıyla VS Code ve npm tedarik zinciri alanında (Trivy, KICS, LiteLLM, TanStack, MistralAI) aktif olmuştur.
  4. 11 dakikalık kaldırma penceresi: Saldırganın yayın anını kontrol ettiği ama marketplace'in hızla tepki verdiği tedarik zinciri saldırılarının karakteristik özelliği.

Nx Console yüklemediyseniz bile tamamen güvende olduğunuzu düşünmeyin. Genel saldırı örüntüsü (__DAEMONIZED süreçleri, IMDS istismarı, ~/.claude/settings.json sızıntısı) herhangi bir zehirlenmiş uzantıya uygulanabilir. Bir sonraki bölümdeki önceliklendirme, hangi uzantıdan şüphelendiğinizden bağımsız olarak geçerlidir.

Tek bir VS Code uzantısından GitHub PAT, npm token, AWS IMDS, 1Password CLI, Vault ve Claude Code ayarları dahil on kimlik bilgisi hedefine uzanan oklar; kötü amaçlı bir uzantının erişebileceği tam etki alanını gösteriyor
Kaynak: techsy.io editorial — tek bir VS Code uzantısı sürecinin erişebildiği kimlik bilgileri kapsamı

Etkilendiniz mi? 5 Dakikalık Önceliklendirme

Üç hızlı test var. (1) 18 Mayıs 12:36-12:47 UTC arasında bir VS Code uzantısı yüklediniz veya otomatik güncellediniz mi? (2) GHSA-c9j4-9m59-847w kapsamındaki IoC dosyalarından herhangi biri şu anda dizüstü bilgisayarınızda mevcut mu? (3) Son 14 günde VS Code içinde bir GitHub PAT kullandınız mı? Her üçünü de beş dakikadan kısa sürede kontrol edin.

Test 1 — Uzantı denetimi

bash
# Tüm yüklü uzantıları sürümleriyle listeleyin
code --list-extensions --show-versions

# Özellikle Nx Console v18.95.0'ı kontrol edin
code --list-extensions --show-versions | grep -i "nrwl.angular-console\|nx-console"

17-18 Mayıs arasında otomatik güncellenen her şey ikinci bir incelemeyi hak ediyor. Nx Console'u tam olarak 18.95.0'da görüyorsanız büyük olasılıkla eşleşme var demektir. Yamalı sürüm 18.100.0'dır. Kaldırın ya da doğruca aşağıdaki eylem planına geçin.

Test 2 — IoC taraması

bash
# Kimlik bilgisi toplama sürecine ait eserleri kontrol edin (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 istismar göstergesi (AWS kimlik bilgisi toplama)
# Kabuk geçmişinde beklenmedik 169.254.169.254 curl komutlarını arayın
grep -E "169\.254\.169\.254|metadata\.google\.internal" ~/.zsh_history ~/.bash_history 2>/dev/null

Temiz bir makinede __DAEMONIZED grep'i sonuç döndürmemeli, .daemonized dosyası bulunmamalı ve kabuk geçmişinde IMDS erişimi görünmemelidir. Bunlardan herhangi biri pozitif dönerse, dizüstü bilgisayarın ele geçirildiğini varsayın ve son 30 günde dokunduğu tüm kimlik bilgilerini geçersiz sayın.

Test 3 — PAT maruziyeti

Son 14 günde herhangi bir VS Code terminalinde, entegre git'te ya da GitHub API'sine çağrı yapan herhangi bir uzantıda GitHub PAT (klasik veya ayrıntılı kapsamlı) kullandıysanız, güvenliğinin ihlal edildiğini varsayın ve aşağıdaki yenileme planına geçin. Bu ihtiyatlı varsayımdır; "uzantı aktifken token bellekte miydi?" sorusunu denetleme imkânınız yok. Yenileyin.

Claude Code kullanıyorsanız, IoC listesi özellikle ~/.claude/settings.json dosyasını kapsıyor. O dosyada nelerin saklandığı ve önce hangi anahtarların yenilenmesi gerektiği için Claude Code hooks rehberimize bakabilirsiniz.

Karar. Bu üç testten herhangi biri pozitif sonuç verirse anlatıyı okumayı bırakın. Doğruca sonraki bölümdeki eylem planına geçin. Önümüzdeki 55 dakika, olayın sonradan değerlendirilmesinden çok daha önemli.

Geliştiricilerin Yapması Gerekenler: 60 Dakikalık Acil Eylem Planı

Kimlik bilgilerini öncelik sırasına göre yenileyin. Kademe 0 (ilk 30 dakika): GitHub PAT'leri ve npm token'ları. Kademe 1 (bugün): AWS / bulut anahtarları, 1Password / Vault, GitHub Actions gizli anahtarları. Kademe 2 (bu hafta): Üçüncü taraf SaaS, OAuth izinleri, SSH anahtarları. Kademe 3 (uygun olduğunda): Salt okunur ve genel anahtarlar. Her kademe, belirli bir etki alanı azaltmasına karşılık gelir.

Kırmızıda GitHub PAT ve npm token'larını gösteren Kademe 0, amberde AWS ve vault token'larını gösteren Kademe 1, sarıda SSH ve OAuth'u gösteren Kademe 2, gride salt okunur anahtarları gösteren Kademe 3'ten oluşan dört kademeli kimlik bilgisi yenileme piramidi; her kademe zaman bütçesiyle etiketlenmiş
Kaynak: techsy.io editorial — 60 dakikalık eylem planı için kademeli yenileme önceliği

HEMEN ŞİMDİ: Etkilendiğinizi Düşünüyorsanız

Önceliklendirmeniz pozitif dönerse, başka bir şey yapmadan önce şu üç adımı sırayla uygulayın.

  1. Daemon sürecini sonlandırın ve şüpheli uzantıyı kaldırın:
bash
# Kötü amaçlı yükü sonlandırın (GHSA-c9j4-9m59-847w)
pkill -f __DAEMONIZED
pkill -f "nx-console.*18.95.0"

# Şüpheli uzantıyı hemen kaldırın
code --uninstall-extension nrwl.angular-console
  1. Aktif sızıntı kanıtı varsa dizüstü bilgisayarınızın ağ kablosunu çekin. Aşırı bir önlem gibi görünüyor. Öyle. Yine de yapın. Çevrimdışı olarak araştırmaya devam edebilirsiniz.
  2. Başka bir şey yapmadan güvenlik ekibinizi arayın veya #security Slack kanalına yazın. Yalnız çalışıyorsanız, aşağıdaki Kademe 0'a geçin.

Kademe 0 (İlk 30 Dakika): GitHub + npm

gh CLI ve web arayüzü üzerinden GitHub PAT iptali:

bash
# Hangi hesapla kimlik doğruladığınızı onaylayın
gh auth status

# Token'ın eriştiği uygulama yüklemelerini listeleyin (etki alanı tespitine yardımcı olur)
gh api -H "Accept: application/vnd.github+json" /user/installations

# gh CLI, klasik PAT'leri doğrudan iptal edemez — web arayüzünü kullanın:
#   https://github.com/settings/tokens
# HER token'ı "Revoke" ile iptal edin. "Bu muhtemelen güvenlidir" diye seçici olmayın.

# Ayrıntılı kapsamlı PAT + ≤90 günlük süre sonu ile yeniden düzenleyin:
#   https://github.com/settings/personal-access-tokens/new
# Her seferinde tek repo kapsamı belirleyin, hesabın tamamı için asla.

# Org'a ait PAT'ler ve yüklemeler için:
gh api /orgs/{ORG}/installations

npm token yenileme:

bash
# Tüm npm token'larını listeleyin ve iptal edin
npm token list
npm token revoke <token-id-1>
npm token revoke <token-id-2>

# Kimlik doğrulama ve yazma işlemleri için 2FA'yı zorunlu kılın
npm profile enable-2fa auth-and-writes

# CI için: uzun ömürlü token kullanmak yerine OIDC güvenilir yayına geçin
# Belgeler: https://docs.npmjs.com/trusted-publishers

Yayımlanmış paketler yönetiyorsanız, npm token'ı sahip olduğunuz tek en tehlikeli kimlik bilgisidir. AWS'den önce yenileyin.

Kademe 1 (Bugün): Bulut + Vault + CI Gizli Anahtarları

Sırada AWS erişim anahtarları geliyor. IoC'ler IMDS istismarını gösterdiğinden, ele geçirilen uç noktaya dokunan tüm IAM kullanıcıları şüpheli kapsamındadır:

bash
# Mevcut IAM kullanıcısının erişim anahtarlarını listeleyin
aws iam list-access-keys --user-name $(aws sts get-caller-identity --query 'Arn' --output text | cut -d/ -f2)

# Eski anahtarı devre dışı bırakın (henüz silmeyin — iş yüklerinin yüksek sesle başarısız olmasını bekleyin)
aws iam update-access-key --access-key-id AKIA... --status Inactive --user-name <user>

# Yeni anahtar oluşturun
aws iam create-access-key --user-name <user>

# Dağıtılıp doğrulandıktan sonra eski anahtarı silin
aws iam delete-access-key --access-key-id AKIA... --user-name <user>

# Herhangi bir EC2 örneği IMDSv1 kullanıyorsa, IMDSv2'yi hemen zorunlu kılın
aws ec2 modify-instance-metadata-options --instance-id i-... --http-tokens required

1Password CLI: Her cihazda oturumu kapatın (op signout --all), oturum token'larını yeniden oluşturun ve 1Password'ün web denetim günlüğünde ele geçirilen uç noktadan gerçekleştirilen erişimleri inceleyin.

HashiCorp Vault: Kullanıcı token'ınızı iptal edin (vault token revoke -self) ve yöneticiden daha kısa TTL ile yeni bir token talep edin.

GitHub Actions gizli anahtarları: Yenilenen herhangi bir kimlik bilgisi Actions'ta da varsa güncellemeniz gerekiyor. Repo başına gh secret set GITHUB_PAT --body <new-pat> komutunu ya da org gizli anahtarları için org düzeyindeki web arayüzünü kullanın.

Anthropic ve OpenAI API anahtarları: GHSA-c9j4-9m59-847w IoC listesi özellikle ~/.claude/settings.json dosyasını bir toplama hedefi olarak belirtiyor. Anthropic konsol API anahtarınızı ve bu dosyada sakladığınız tüm OpenAI anahtarlarını iptal edip yeniden düzenleyin.

Kademe 2 (Bu Hafta): SSH + OAuth + Parola Yöneticileri

SSH anahtarları daha yavaş hareket eder ama kapsam içindedir. Uzantının ~/.ssh/ üzerinde dosya sistemi okuma erişimi vardı:

bash
# Mevcut SSH anahtarlarını denetleyin (ne zaman oluşturuldu?)
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

# Yeni bir Ed25519 anahtarı oluşturun
ssh-keygen -t ed25519 -C "rotated-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519_new

# Genel anahtarı GitHub'a yükleyin
gh ssh-key add ~/.ssh/id_ed25519_new.pub --title "rotated-$(date +%Y%m%d)"

# Eski anahtarı GitHub web arayüzünden silin, ardından SSH'ın çalıştığını doğrulayın
ssh -T [email protected]

Tarayıcı parola yöneticisi ve işletim sistemi anahtar zinciri: Uzantının pano aracılığıyla görmüş olabileceği tüm parolaları yenileyin. Gerçekçi maruziyet, uzantı aktifken panoya kopyaladığınız parolalardır.

Kademe 3 (Uygun Olduğunda): Denetleme + Doğrulama

İhlal penceresi için GitHub org günlüğünüzü denetleyin. Bunun için org yöneticisi yetkisi gereklidir:

bash
# 18-20 Mayıs penceresindeki push olaylarını çekin
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}'

# Şüpheli commit'leri nokta denetimi yapın (beklenmedik yazarlar, büyük farklar)
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}'

# OAuth izinlerini yenileyin
gh auth refresh -s admin:org -s admin:public_key

Denetim günlüğü, yapmadığınız ihlal penceresi push'larını gösteriyorsa güvenlik ekibinizi bilgilendirin ve denetim günlüğü JSON'ını saklayın. Repodaki herhangi bir şeyi "geri almaya" çalışmayın. Önce kanıtı koruyun.

Nisan'daki Vercel ortam değişkeni ihlaline yönelik kademeli yenileme mantığını daha önce ele almıştık; aynı yapı, farklı katman.

5 Soruluk Uzantı Denetim Çerçevesi (Bundan Böyle Kullanın)

Herhangi bir VS Code uzantısı yüklemeden veya güvenmeden önce beş test uygulayın: yayıncı alan adı yaşı, sürüm hızı, package.json etkinleştirme olayları, beklenen davranışa göre izin kapsamı ve açık kaynak repo denetimi. Nx Console v18.95.0, Test #2'yi geçemezdi: kararlı bir sürüm ritmi ardından ani bir sürüm sıçraması, klasik tedarik zinciri belirtisidir.

  1. Yayıncı alan adı yaşı. Yayıncının alan adı bir yıldan eski mi? Yeni kayıtlı alan adlarına sahip yeni yayıncılar daha fazla risk taşır. Visual Studio Marketplace yayıncı sayfası veya yayıncı e-posta alan adında whois ile kontrol edin.
  2. Sürüm hızı. Sürüm geçmişi normal ritim (1-4 haftada bir sürüm) mi yoksa ani bir artış (24 saat içinde üç sürüm) mı gösteriyor? Ani hız bir uyarı işaretidir. Nx Console v18.95.0 bir hız anomalisiydi.
  3. package.json etkinleştirme olayları. .vsix dosyasını açın (bir zip arşividir) ve activationEvents alanını okuyun. * üzerinde etkinleşen (her zaman açık) uzantıların saldırı yüzeyi en geniştir. Belirli bir dil veya dosya adı üzerinde etkinleşen uzantıları tercih edin.
  4. Gereken izinler ile beklenen davranış. Bir "tema" uzantısı ağ erişimi mi istiyor? Bir "snippet" uzantısının dosya sistemi yazma iznine mi ihtiyacı var? Uyuşmazlıklar kırmızı bayraktır. Microsoft'un uzantı çalışma zamanı güvenlik belgelerine bakarak doğrulayın.
  5. Açık kaynak repo denetimi. Kaynak kodu GitHub'da mı? Son beş commit'i şüpheli değişiklikler için okuyun: kurulum sonrası kancalar, base64 kodlu bloblar, tanımadığınız alan adlarına ağ çağrıları.

* üzerinde etkinleşen ve ağ erişimi isteyen bir uzantı, üstüne VS Code yapıştırılmış bir uzak kabuk gibi çalışır.

Aynı denetim çerçevesi, bir sonraki uzantı sınıfı tedarik zinciri yüzeyi olan MCP sunucuları için de geçerlidir. Güvendiğimiz ve neden güvendiğimiz için en iyi MCP sunucuları 2026 yazımıza bakabilirsiniz.

Bu Neden Tekrar Tekrar Oluyor: 2025-2026 Tedarik Zinciri Dalgası

20 Mayıs'taki GitHub ihlali, 9 aylık bir sürecin bir halkası: Shai-Hulud npm solucanı (Eylül 2025), GlassWorm OpenVSX solucanı (Ekim-Kasım 2025), Shai-Hulud 2.0 (Kasım 2025, 25.000'den fazla etkilenen repo), Mini Shai-Hulud (2026 başı), Nx Console (18 Mayıs 2026), GitHub uç noktası ihlali (20 Mayıs 2026). Geliştirici uç noktaları yeni zayıf halka hâline geldi.

  • Eylül 2025, Shai-Hulud npm solucanı. Popüler npm paketlerinde kendiliğinden yayılan kötü amaçlı yazılım. CISA, npm ekosistemi genelindeki ihlaline dair bir uyarı yayımladı.
  • Ekim-Kasım 2025, GlassWorm. OpenVSX'teki VS Code uzantılarını hedef alan ilk kendiliğinden yayılan solucan. Koi Security açıklaması.
  • Kasım 2025, Shai-Hulud 2.0. 25.000'den fazla repo sızdırıldı. Microsoft Security Blog içerme kılavuzu yayımladı.
  • 2026 başı, Mini Shai-Hulud. TeamPCP varyantı. Trivy, KICS, LiteLLM, TanStack ve MistralAI'ye karşı küçük ölçekli tekrarlar.
  • 18 Mayıs 2026, Nx Console v18.95.0. GitHub uç noktası ihlali için büyük olasılıkla kullanılan vektör.
  • 20 Mayıs 2026, GitHub açıklama yapar. ~3.800 dahili repo sızdırıldı. Wiz'in Shai-Hulud adli serisi uyarınca IMDS istismar örüntüsü doğrudan bir evrimdir.

Örüntü nettir: geliştirici dizüstü bilgisayarları org'un tüm gizli bilgilerini (GitHub PAT'leri, AWS anahtarları, vault token'ları, yapay zeka sağlayıcı anahtarları) barındırıyor ve üzerlerinde neredeyse hiç EDR koruması bulunmuyor. Bu dengesizlik değişene kadar bu dalga devam edecek.

Savunma amaçlı yapay zeka, çözümün bir parçasıdır. Bu konuyu yılın başında yapay zekanın veri ihlallerini nasıl önlediğine dair yazımızda ele aldık.

GitHub'ın Geniş Çaplı Müdahalesi: Güvenilir Yayın, FIDO 2FA, 90 Günlük Token

GitHub, 20 Mayıs'tan önce dört tedarik zinciri kontrolünü zaten hayata geçiriyordu: npm yayıncıları için zorunlu 2FA, ayrıntılı yazma token'larında 90 günlük üst sınır, FIDO ve geçiş anahtarları lehine TOTP'nin kaldırılması ve GitHub Actions ile GitLab CI için OIDC güvenilir yayın. Mayıs ihlali, halihazırda süren bir geçişi hızlandırdı; yeni bir politika getirmedi.

KontrolDurumSizin için eylem
Zorunlu npm 2FAYayındaŞimdi etkinleştirin: npm profile enable-2fa auth-and-writes
90 günlük ayrıntılı yazma token sınırıKullanıma sunuluyor (mevcut token'lar süresi dolmak üzere)≤90 günlük TTL'li ayrıntılı kapsamlı PAT'lere geçin
TOTP kaldırma, FIDO / geçiş anahtarları2026 aşamalı kullanıma sunulumuBugün her GitHub hesabına bir geçiş anahtarı kaydedin
OIDC güvenilir yayınGitHub Actions + GitLab CI için yayındaCI'ı uzun ömürlü npm token'larından OIDC'ye taşıyın

GitHub'ın daha güvenli bir npm tedarik zinciri planı bu olaydan aylarca önce hazırlanmıştı. Ne kadar hızlı uyum sağlarsanız, bir dahaki seferindeki etki alanınız o kadar küçük olur.

Sertleştirme: Bir Sonrakini Nasıl Atlatırsınız

Altı ileriye dönük adım: devcontainer.json dosyasında uzantı sürümlerini sabitleyin, org düzeyinde bir uzantı izin listesi uygulayın, uzantı süreci görünürlüğü olan EDR çalıştırın, her push'ta gizli anahtar taraması yapın, PAT'leri tek repoyla sınırlandırın ve uzun ömürlü token'lar yerine OIDC güvenilir yayını benimseyin. Bunların hiçbiri tek başına her olayı engellemezdi; birlikte etki alanını "dizüstü bilgisayardaki her şey" den "tek repo"ya indirir.

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

Kısaca:

  • Sabitleyin: Otomatik güncellemeyi devre dışı bırakmak için devcontainer.json dosyasındaki her uzantı sürümünü sabitleyin.
  • İzin listesi oluşturun: VSCODE_GALLERY_SERVICE_URL'yi dahili bir aynaya yönlendirerek org düzeyinde izin listesi uygulayın.
  • IDE süreç görünürlüğüne sahip EDR: VS Code kapsama dahil olmak üzere Crowdstrike, SentinelOne veya Microsoft Defender for Endpoint.
  • Her push'ta gizli anahtar taraması: Commit öncesi ve push anında, sunucu taraflı.
  • Her PAT'i tek repoyla sınırlandırın: Hiçbir zaman * kapsamı kullanmayın.
  • OIDC güvenilir yayın: CI'da uzun ömürlü npm veya registry token'larına son verin.

Geçen haftaki Linux copy_file_range CVE kardeş bir hikâye: farklı katman, aynı ders. Göz ardı ettiğiniz güven sınırı sizi ısıran olur.

Yapay zeka kodlama ajanlarını değerlendiriyorsanız, aynı denetim çerçevesini uygulayın. Uzantılarla aynı güven profiline sahipler. Hangi ajanların bu güveni kazandığı için en iyi yapay zeka kodlama ajanları 2026 yazımıza bakabilirsiniz.

Sık Sorulan Sorular

GitHub gerçekten hacklenildi mi?

Çoğu haberin ima ettiği anlamda hayır. GitHub.com üretim ortamı ihlal edilmedi. Bir GitHub çalışanı iş istasyonuna kötü amaçlı bir VS Code uzantısı yükledi; bu uzantı GitHub'ın dahili kaynak kodu depolarından yaklaşık 3.800'ünü dışarı aktardı. Müşteri kodları, müşteri hesapları ve GitHub'ın üretim hizmetleri etkilenmedi.

Gerçekte hangi VS Code uzantısı kullanıldı?

GitHub, uzantı adını resmi olarak doğrulamadı. StepSecurity, Wiz ve GHSA-c9j4-9m59-847w'dan elde edilen adli kanıtlar büyük olasılıkla Nx Console v18.95.0'a işaret ediyor; 18 Mayıs 12:36 UTC'de yayımlandı ve 11 dakika sonra kaldırıldı. GitHub bunu resmi olarak açıklayana kadar bunu "büyük olasılıkla doğru, kesinleşmiş değil" olarak değerlendiriyoruz.

Nx Console artık güvenli mi?

Yamalı sürüm 18.100.0'dır. Eski v18.95.0 yüklüyse hemen kaldırın, önceliklendirme bölümündeki IoC taramasını çalıştırın ve yalnızca resmi Nrwl yayıncısından 18.100.0 veya sonrasını yeniden yükleyin. Yeniden yüklemeden önce yayıncı alan adını doğrulayın ve sürümü devcontainer.json dosyasında sabitleyin.

GitHub ihlalinden müşteri verileri etkilendi mi?

Hayır. GitHub'ın Bleeping Computer aracılığıyla yaptığı resmi açıklamaya göre, müşteri kaynak kodu, müşteri hesapları, OAuth token'ları ve GitHub tarafından barındırılan üretim verileri erişime açılmadı. Ele geçirilen veriler, çalışan uç noktasındaki GitHub'ın dahili kaynak kodudur. Bunu bir platform ihlali olarak değil, çalışan dizüstü bilgisayarı olayı olarak değerlendirin.

GitHub PAT'imin çalınıp çalınmadığını nasıl anlayabilirim?

Kesinlikle bilemezsiniz. İhtiyatlı varsayım şu: son 14 gün içinde VS Code içinde herhangi bir GitHub PAT kullandıysanız, güvenliğinin ihlal edildiğini varsayın ve yenileyin. Tanımadığınız push olayları için 18-20 Mayıs UTC arasındaki gh api /orgs/{ORG}/audit-log çıktısını kontrol edin, ardından token'ı iptal edip yeniden düzenleyin.

TeamPCP ve UNC6780 nedir?

TeamPCP bir tehdit aktörü grubudur; UNC6780 ise olay müdahale firmaları tarafından atanan takip kimliğidir. Grup, GitHub ihlaline atfını kamuoyu önünde üstlendi. Aynı grup 2026'da Trivy, KICS, LiteLLM, TanStack ve MistralAI'ye yönelik saldırıları da üstlendi; bu da tutarlı bir VS Code ve npm tedarik zinciri hedefleme örüntüsünü ortaya koyuyor.

VS Code uzantıları korumalı alanda (sandbox) çalışıyor mu?

Hayır, anlamlı bir biçimde çalışmıyor. VS Code uzantıları, IDE'nin Node.js sürecinde kullanıcının tam dosya sistemi ve ağ ayrıcalıklarıyla çalışır. Ana dizininizdeki her dosyayı okuyabilirler; SSH anahtarları, ~/.aws/credentials, ~/.claude/settings.json ve Linux'ta /proc/*/mem aracılığıyla süreç belleği dahil. Microsoft, çalışma zamanı güvenlik modelini ve sınırlamalarını resmi uzantı belgelerinde açıklamaktadır.

Bu durum GitHub Codespaces veya CI runner'larını etkiledi mi?

Şimdiye kadar herhangi bir kanıt yok. İhlal, GitHub tarafından barındırılan altyapıyı değil, bir çalışan iş istasyonunu kapsıyordu. Codespaces, GitHub Actions runner'ları ve müşteriye yönelik CI altyapısının etkilendiği bildirilmedi. Yeni IoC'ler bu tabloyu değiştirirse yazıyı güncelleyeceğiz.

Sonuç

Üç önemli çıkarım:

  1. GitHub.com hacklenmedi. Bir çalışanın VS Code iş istasyonu ele geçirildi. Ders her geliştirici için geçerlidir.
  2. Şimdi yenileyin, çerçeveyi sürekli kullanın. 60 dakikalık eylem planı yamadır; 5 soruluk denetim çerçevesi ise bağışıklık sisteminizdir.
  3. Bu tek seferlik bir olay değil. 9 aylık tedarik zinciri dalgasının 6. halkası ve yavaşlamıyor.

Son güncelleme: 20 Mayıs 2026. Bu yazıyı 27 Mayıs 2026'da yeni IoC'ler, satıcı danışma belgeleri ve GitHub'ın resmi olarak doğruladığı uzantı atfıyla güncelleyeceğiz.

Takımınızın VS Code uzantısı yüzeyini, PAT ve token hijyenini denetlemek ya da org düzeyinde bir izin listesi politikası oluşturmak için yardıma ihtiyaç duyuyorsanız, ücretsiz danışmanlık alın. Nisan'daki Vercel ihlalinden bu yana geliştirici uç nokta güvenliğine odaklanıyoruz ve yukarıdaki eylem planı, müşterilerle ilk gün uyguladığımız plandır.

Etiketler

siber güvenliktedarik zinciri saldırısıvscodegithubgeliştirici güvenliğiolay müdahalesiGHSA-c9j4-9m59-847w

Bu makaleyi paylaş

Projenize Başlayın

Harika bir şey inşa etmeye hazır mısınız?

Vizyonunuzu hayata geçirelim. Fark yaratan yazılımlar için ekibimiz hazır.