Rust ekosistemindeki popüler açık kaynak paketlerini etkileyen tedarik zinciri saldırısında, zararlı bir bağımlılığın Cargo derleme süreci sırasında kod çalıştırdığı ortaya çıktı. Rust Security Response Team, arrayref, internment ve append-only-vec paketlerinin belirli sürümlerini crates.io üzerinden kaldırırken geliştiricinin hesabını da önlem amacıyla kilitledi.
Olay, açık kaynak bağımlılıklarında riskin yalnızca uygulamanın çalışma zamanında başlamadığını yeniden gösteriyor. Bu saldırıda güven sınırı (trust boundary), uygulama çalıştırılmadan önce geliştirici bilgisayarına veya CI/CD ortamına taşındı.
crates.io üzerinde hangi Rust paketleri etkilendi?
Rust Security Response Team, 20 Ağustos 2026 tarihinde proc-macro1 isimli zararlı bir crate hakkında bildirim aldığını ve paketin kötü amaçlı bir build.rs dosyası içerdiğini doğruladı. İnceleme sırasında popüler arrayref paketinin yeni yayımlanan 0.3.10 sürümüne bu zararlı bağımlılığın eklendiği belirlendi.
Aynı geliştirici hesabına bağlı internment@0.8.7 ve append-only-vec@0.1.9 sürümleri de saldırıdan etkilendi. Rust ekibi arrayref@0.3.10 sürümünü yayımlandıktan yaklaşık 86 dakika, internment@0.8.7 sürümünü 90 dakika ve append-only-vec@0.1.9 sürümünü 107 dakika sonra kaldırdı.
RustSec verilerine göre zararlı arrayref@0.3.10 sürümü kaldırılmadan önce 2.285 kez indirildi. Ancak bu sayı 2.285 sistemin ele geçirildiği anlamına gelmiyor. Bir sistemin doğrudan risk altında olması için zararlı sürümün alınması ve ilgili derleme sürecinin çalıştırılmış olması gerekiyor.
Rust ekibi meşru geliştiricinin saldırıya bilerek katıldığına inanmadığını belirtiyor. Mevcut değerlendirme, geliştiricinin bilgisayarının veya crates.io yayınlama kimlik bilgilerinin ele geçirilmiş olabileceği yönünde.
Zararlı kod Cargo derlemesine nasıl girdi?
Saldırının teknik açıdan en dikkat çekici bölümü, zararlı kodun uygulama başlatıldığında değil derleme sırasında çalıştırılması oldu. arrayref@0.3.10 içerisine, meşru proc-macro2 paketini taklit eden proc-macro1 bağımlılığı eklendi.
Rust’ın paket yöneticisi Cargo, bir paketin kök dizininde build.rs bulunduğunda bu dosyayı paket derlenmeden hemen önce derleyip çalıştırıyor. Bu nedenle geliştiricinin zararlı bir fonksiyonu ayrıca çağırması veya oluşturulan uygulamayı çalıştırması gerekmiyor. Normal bir Cargo derlemesi, zararlı build script’in devreye girmesi için yeterli olabiliyor.
RustSec tarafından belgelenen proc-macro1 örneğinde build.rs, uzak bir sunucudan platforma uygun ikinci aşama payload indirerek çalıştırıyordu. Böylece saldırı zinciri, güvenilir görünen bağımlılıktan geliştirici veya build sisteminde uzaktan kod çalıştırmaya kadar ilerleyebiliyordu.
Socket Research tarafından analiz edilen ikinci aşama örnekleri Windows, Linux ve macOS ortamlarını hedefleyebilen yetenekler içeriyor. Araştırmacılar zararlı yazılımın sistem bilgilerini topladığını, Chromium tabanlı tarayıcıları envanterlediğini, kullanıcı seviyesinde kalıcılık sağlayabildiğini ve komuta-kontrol altyapısı üzerinden ek komutlar çalıştırabildiğini bildirdi.
Geliştirici ve CI/CD sistemleri neden kritik?
Derleme ortamları sıradan kullanıcı sistemlerinden daha yüksek değerli hedefler olabilir. Geliştirici iş istasyonları ve CI/CD runner’ları kaynak kod depolarına, paket yayınlama token’larına, bulut kimlik bilgilerine, deployment secret’larına veya yazılım imzalama materyallerine erişebiliyor.
Bu nedenle build-time kod çalıştırma yalnızca tek bir geliştirici cihazının ele geçirilmesiyle sınırlı kalmayabilir. Saldırganın eriştiği kimlik bilgilerine bağlı olarak sonraki paket sürümleri, build artifact’ları veya deployment süreçleri de yeni bir tedarik zinciri riskine dönüşebilir. Socket de etkilenen sistemler arasında geliştirici bilgisayarları, CI/CD runner’ları ve release altyapılarını özellikle öne çıkarıyor.
Olay ayrıca CVE-2026-77651 olarak kayda geçti. NVD’de henüz NIST tarafından bağımsız bir CVSS puanı yayımlanmazken MITRE/CNA değerlendirmesi açığa CVSS 3.1 kapsamında 9.8 kritik puan veriyor ve problemi CWE-506 “Embedded Malicious Code” sınıfında değerlendiriyor.
Rust kullanan ekipler hangi kontrolleri yapmalı?
Rust Security Response Team, kurumların yerel bağımlılıklarını ve Cargo cache’lerini kontrol ederek zararlı sürümlerin indirilip indirilmediğini belirlemesini öneriyor. Özellikle arrayref@0.3.10, internment@0.8.7, append-only-vec@0.1.9 ve saldırıyla ilişkilendirilen proc-macro1 gibi paketler dependency inventory ve build kayıtlarında aranmalı.
Zararlı sürümlerden birinin gerçekten derlendiğinin tespit edilmesi durumunda ilgili build ortamı potansiyel olarak ele geçirilmiş kabul edilmeli. O sistemin erişebildiği repository token’ları, paket yayınlama anahtarları, bulut kimlik bilgileri ve diğer secret’lar değerlendirilerek gerekirse yenilenmeli. Build logları, süreç oluşturma kayıtları ve ağ telemetry verileri de olayın kapsamını belirlemek için incelenmeli.
Supply-chain güvenliği yalnızca CVE taramasından ibaret değil
Rust vakası, yazılım tedarik zinciri güvenliğinde yalnızca bilinen CVE’leri taramanın yeterli olmadığını gösteriyor. Yeni yayımlanan bir bağımlılık henüz klasik zafiyet veri tabanlarına girmeden doğrudan kötü amaçlı davranış sergileyebilir.
Bu nedenle kurumların dependency değişikliklerini, paket yayıncılarını, lockfile’ları ve build-time ağ davranışını birlikte izlemesi önem taşıyor. CI/CD ortamlarında gereksiz internet erişiminin sınırlandırılması, secret’ların derleme süreçlerinden ayrıştırılması ve build telemetry verisinin merkezi olarak izlenmesi saldırganın hareket alanını azaltabilir.
Bu olayda asıl güven sınırı çalışan uygulama değil, uygulamayı üreten derleme ortamıydı. Yazılım tedarik zincirini korumak isteyen kurumlar için görünürlük de bu nedenle yalnızca production sistemlerinde değil, geliştirici ve CI/CD katmanında başlamalı.
Birincil Kaynaklar
- Rust Security Response Team — Supply chain attack on arrayref
https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/ - RustSec Advisory Database — RUSTSEC-2026-0260
https://rustsec.org/advisories/RUSTSEC-2026-0260.html - RustSec Advisory Database — Teknik olay kaydı #3161
https://github.com/rustsec/advisory-db/issues/3161 - The Cargo Book — Build Scripts
https://doc.rust-lang.org/cargo/reference/build-scripts.html - NVD — CVE-2026-77651
https://nvd.nist.gov/vuln/detail/CVE-2026-77651
İkincil / Destekleyici Teknik Kaynak
- Socket Research — Popular Rust Crates Compromised
https://www.socket.dev/blog/popular-rust-crates-compromised
