· kaynak Hacker News – Front Page (native)
Cursor Marketplace'teki resmi Claude Code extension'ına arka kapır yerleştirildi: kalıcı SSH arka kapısı
Phorion güvenlik firması, Cursor Marketplace'te dağıtılan resmi Claude Code VS Code extension'ının 2.1.313 sürümünün macOS, Linux ve Windows üzerinde saldırganın SSH anahtarını, kalıcılık mekanizmasını ve bir reverse tunnel kurduğunu bildiriyor.

Ne oldu
Phorion güvenlik firması, Cursor editörünün extension mağazası olan Cursor Marketplace üzerinden dağıtılan resmi Claude Code VS Code extension'ında bir arka kapı tespit ettiğini duyurdu. Hacker News ana sayfasına düşen duyuruya göre extension'ın 2.1.313 sürümü, macOS, Linux ve Windows üzerinde kalıcı bir SSH arka kapısı kuran kod içeriyordu. Cursor, bu sürümü marketplace'inden kaldırdı ve ayrıca 2.1.313'ün npm ve VS Code sürümlerini de registry'lerden çekti.
Duyuruda, extension'ların IDE'nin ve kullanıcının izinleriyle çalıştığına dikkat çekiliyor; bu nedenle arka kapılı bir extension, modülü yüklenir yüklenmez yerel dosyalara, kaynak koda ve geliştirici araçlarına anında erişim kazanıyor.
Payload nasıl çalışıyor
Phorion, minified extension.js bundle'ının başına eklenmiş bir immediately invoked function expression buldu. Dosyanın geri kalanı, beklenen Claude Code ve VS Code string'leri ve normal activate ile deactivate export'larıyla özgün extension gibi görünüyor. Enjekte edilen önek, child_process, fs, os, path, http ve crypto gibi standart Node.js modüllerini içe aktarıyor ve extension'ın activate callback'i hiç çalışmadan önce, Node dosyayı yükler yüklermez yürütülüyor. Payload'un tetiklenmesi için kullanıcının extension'la etkileşime girmesi gerekmiyor.
Birinci aşama: SSH anahtarı, kalıcılık ve iki hata
Payload önce ~/.ssh dizininin var olduğundan emin oluyor ve yorum satırı olarak svc-telemetry yazılmış, saldırgan kontrolündeki bir Ed25519 public key'i authorized_keys dosyasına ekliyor; dizin izinlerini 0700, dosya izinlerini 0600 olarak ayarlıyor. Tekilleştirme kontrolü anahtarın kendisi yerine yorum satırını arıyor; bu yüzden Phorion, yorum satırına güvenmek yerine public key parmak iziyle arama yapılmasını öneriyor.
Betik daha sonra bir SSH daemon'unun dinlediğinden emin olmaya çalışıyor: Linux'ta systemctl'i, ardından service ve init script'lerine düşüyor; macOS'ta Remote Login'i kontrol ediyor ve kapalı görünüyorsa non-interactive sudo ile açmayı deniyor; Windows'ta PowerShell ile OpenSSH Server kurup başlatmaya çalışıyor. Phorion, bir yetki yükseltme açığı bulunmadığını vurguluyor ve sudo -n, kullanıcının halihazırda parolasız sudo yapılandırmadıysa başarısız oluyor; bu yüzden standart bir hesaptan sistem servisi başlatmak her zaman başarılı olmuyor.
İki uygulama hatası bu aşamayı sekteye uğratıyor. Windows'taki kod yolu, PowerShell komutunu /bin/sh'yi sabit kodlayan bir yardımcı üzerinden gönderiyor ve bu, standart bir Windows kurulumunda hiçbir yere varmıyor. macOS'ta betik, systemsetup -getremotelogin komutunu yükseltme olmadan çalıştırıyor; standart kullanıcı için bu komut bir yönetici erişim hatası yazdırıp 0 durum koduyla çıkıyor, dolayısıyla betiğin "Off" kontrolü hiç eşleşmiyor ve etkinleştirme adımını tamamen atlıyor. Phorion net etkiyi, kötücül yazılımın "ayar kontrol edilemiyor"u "ayar zaten açık" olarak okuması olarak tanımlıyor. Remote Login kapalı bir Mac'te anahtar ve kalıcılık yerini yine de bulsa da gelen erişim yolu bozuktur; ancak duyuru, Remote Login zaten açıksa veya sonradan açılırsa arka kapının hazır beklediği için buna güvenilmemesi gerektiğini açıkça belirtiyor.
İkinci aşama: reverse tunnel
Betik daha sonra 134.209.82[.]225 adresindeki saldırgan kontrolündeki bir sunucuya giden bir SSH bağlantısı açıyor; tunnel kullanıcısı olarak 22 numaralı porta bağlanıyor ve yorum satırı svc-telemetry-tun olan, şifrelenmemiş ikinci bir Ed25519 private key ile kimlik doğrulıyor. Bu anahtar, işletim sisteminin temp dizinine, .stk_ önekiyle başlayan ve hostname ile home dizini yolunun MD5 özetinin ilk on karakteriyle devam eden bir dosya adıyla yazılıyor.
Bağlantı, saldırganın sunucusundan dinamik bir dinleme portu ayırmasını ve trafiği tunnel üzerinden kurban makinesindeki 22 numaralı porta geri iletmesini isteyen remote port forwarding talep ediyor. İki anahtar farklı işler yapıyor: authorized_keys kaydı operatörün kurbane giriş yapmasını sağlarken, gömülü private key kurbanın operatörün tunnel sunucusuna ulaşmasını sağlıyor. Phorion'a göre payload kalıcı interaktif erişim için tasarlanmış ve host keşif verilerini operatöre beacon olarak geri gönderiyor.
Kurumlar ne yapmalı
Phorion, kurumlara ortamlarında derhal Claude Code for VS Code 2.1.313 için inceleme yapmalarını ve extension'ın bulunduğu her yerde olay müdahalesini devreye almalarını öneriyor. macOS'ta bir tespit zorluğu var: standart kullanıcılar için etkinleştirme adımı atlandığından Remote Login'i açma girişimi süreç telemetrisinde görünmeyecek.
Neden önemli
Bu ihlal, tedarik zinciri güveniyle geliştirici araçlarının kesişim noktasında yer alıyor: bir marketplace üzerinden dağıtılan, resmi görünümlü bir extension, daha aktive olmadan önce geliştiricinin tüm yetkileriyle düşmanca kod çalıştırdı. Geliştirici makineleri, kaynak kodu, kimlik bilgilerini ve build altyapısına erişimi barındırdıkları için yüksek değerli bir hedef; buradaki tasarım — kalıcı anahtarlar, gelen güvenlik duvarı kurallarını devre dışı bırakan giden bir tunnel, keşif beacon'ları — hızlı bir hırsızlık değil uzun vadeli erişime işaret ediyor. macOS ve Windows'taki hatalar zincirin bazı bölümlerini bugün sınırlıyor, ancak kalıcılık yine de yerini buluyor ve o birkaç satır koddaki düzeltme boşluğu kapatacaktır. Marketplace üzerinden dağıtılan extension'lar, diğer her dependency kadar incelemeyi hak ediyor: sürümleri sabitleyin, beklenmedik sürümlere dikkat edin ve IDE plugin'lerini sizin adınıza çalışan kod olarak görün.
- #security
- #supply-chain
- #vs-code-extensions
- #claude-code
- #cursor