Rust paketi kompilyasiya zamanı zərərli proqram işə saldı. 86 dəqiqə.
260 milyon yükləməyə malik dörd makro Rust paketi bir asılılıq əlavə edir və `cargo build` yad adamın ikilik faylını maşınınızda işə salır.
260 milyon yükləməyə malik dörd makro Rust paketi bir asılılıq əlavə edir və `cargo build` yad adamın ikilik faylını maşınınızda işə salır. 20 avqust 2026: arrayref 0.3.10 crates.io-da proc-macro1-dən — əsl proc-macro2 deyil — asılı olaraq yerləşir, onun quraşdırma skripti faylı yükləyir, onu /tmp/rust-setup-a atır və layihəniz kompilyasiya olunarkən onu ayrılmış şəkildə işə salır. Təmiz versiyalar ləğv edilir ki, Cargo-nun öz xəbərdarlığı sizi zəhərlənmiş versiyaya aparsın. 86 dəqiqə sonra silinir.
Yazılı nəşri oxuyun (İngiliscə) ↗
Bu videoda nələr əhatə olunur
- cargo build yad adamın ikilik faylını işə salır
- Qəbzlər: Rust Bloqu, SafeDep, Hacker News
- Bu The Daily Diff, postmortem
- Zaman xətti: 02:11 staging → 07:15 nəşr edildi → 08:41 silindi
- Mexanizm: build.rs, sandbox yox, ləğvetmə cəlbetməsi
Tərcümə olunmuş transkript
Orijinal ingilis dilindəki nəqldən tərcümə edilmişdir. Mövcud audio və subtitrlər YouTube tərəfindən idarə olunur.
cargo build yad adamın ikilik faylını işə salır
0:00 Dördmakrolu Rust paketi dörddəbir milyard yükləmə ilə birini əlavə edir asılılıq və cargo build yad adamın ikilik faylını maşınınızda işə salır. 20 avqust 2026. arrayref 0.3.10 proc-macro1-dən asılı olaraq crates.io-ya daxil olur. Əsl proc-macro2 deyil: bir rəqəm fərqi ilə və onun build skripti faylı işə salır layihəniz kompilyasiya olunarkən. Rust-ın təhlükəsizlik qrupu onu 86 dəqiqə sonra silir.
Qəbzlər: Rust Bloqu, SafeDep, Hacker News
0:22 SafeDep söküntünü dərc edir. Hacker News: 554 bal. Necə baş verir, Cargo niyə buna icazə verir və günah kimdədir. Bu The Daily Diff, postmortem. Saat ikidə, UTC.
Bu The Daily Diff, postmortem
0:33 d-tolney adlı bir hesab, David Tolnay-dən bir hərf fərqi ilə, Rust-ın yarısını dəstəkləyən, proc-macro1 1.0.106-nı nəşr edir: əsl
Zaman xətti: 02:11 staging → 07:15 nəşr edildi → 08:41 silindi
0:41 proc-macro2, adlandırılıb. Staging. 07:11. Versiya 1.0.107 bir build skripti əlavə edir, üstəgəl base64, TLS və bir HTTP müştərisi. Token parser üçün. 07:15. Baxıcının hesabı arrayref-i 0.3.10 olaraq yenidən nəşr edir və bütün köhnə versiyaları ləğv edir. Cargo çap edir: ləğv edilməmiş bir versiyaya yeniləməyi düşünün. Qalan tək şey zəhərlənmişdir.
1:02 Xəbərdarlıq cəlbetmədir. Eyni dəqiqə, bir təhlükəsizlik firması bunu Rust-a bildirir. 07:54, RustSec problemi. 08:29, repoda bir problem; hücumçu 0.3.11 və ikinci ilə cavab verir zərərli asılılıq. 08:41, silindi. Səksən altı dəqiqə. Niyə? Bir: Cargo elan edilmiş hər asılılığı qurur, çağırılıb-çağırılmasından asılı olmayaraq. Bir manifest sətiri kifayətdir.
1:21 İki: bir build skripti maşınınızda, sizin kimi, SSH açarlarınız və cargo ilə işləyir
Mexanizm: build.rs, sandbox yox, ləğvetmə cəlbetməsi
1:26 tokeninizlə, kodunuz kompilyasiya olunmadan əvvəl. Sandbox yoxdur, dizaynla: bu, paketlərin C kitabxanalarını necə tapdığıdır. Üç: içərisində əsl proc-macro2 var, buna görə də quraşdırma uğurludur. Payload: hər hansı bir sertifikata etibar edən bir TLS müştərisi ikilik faylı gətirir, onu /tmp/rust-setup-a atır və ayrılmış şəkildə işə salır. Windows-da Cargo-nun iş obyektindən qaçmaq üçün wscript vasitəsilə keçir; bir mənbə şərhində deyilir. İkinci mərhələ, RustSec mövzusuna görə: brauzerlərə və kripto pul kisələrinə yönəlmiş
1:52 uzaqdan giriş aləti. Şeiridir, çünki arrayref-in ən böyük istifadəçiləri arasında secp256k1 və Solana var. git blame. Cargo-nun modeli, əlli beş faiz: asılılıqlar kodunuzu işə salır maşında kompilyasiya zamanı, sandbox yoxdur və ləğvetmə xəbərdarlığı insanları
git blame — bölgü
2:07 zəhərə apardı. Bir hesab, otuz: bir etimadnamə dörddəbir milyard yükləmənin güvəndiyi bir paketi yenidən nəşr edir. milyard yükləmə etibar edir. Rəqəm bir, on beş: Rust-ın ən etibarlı paketindən bir klaviatura vuruşu, və heç kim ağacı oxumur. Partlayış radiusu: 86 dəqiqədə 2,285 yükləmə. Trafikin on faizindən az, çünki əksər kilid faylları 0.3.9-u saxlayırdı. crates.io istifadəyə dair heç bir dəlil olmadığını deyir.
Partlayış radiusu: 2,285 yükləmə
2:27 RustSec mövzusundakı iki nəfər razılaşmır; biri bir systemd xidməti tapır. Hacker News-da ən üst mövzu zərərli proqram haqqında deyil. Bu, indi 0.3.10-un heç vaxt mövcud olmadığı paket səhifəsidir. Hökm, postmortem: nəzərdən keçirilməlidir. Silmək üçün səksən altı dəqiqə, eyni gün blog yazısı, hesab kilidli: o hissə SHIP IT-dir. Amma paket səhifəsi heç nə baş vermədiyini göstərir, cargo audit keşlənmiş bir
Hökm + Bazar ertəsi xətti
2:48 nüsxədə səssiz qalır və build skriptləri hələ də sizin kimi işləyir. Bazar ertəsi: Rust bloqunun tap əmrini işə salın və ləğvetmə xəbərdarlığına bir təlimat deyil, bir sual kimi yanaşın. Mənə hələ də danışmağa icazə verilməyən hadisəni göndərin, şərhlərdə, və ya daily diff dot dev ünvanında. Və bu, bu gün üçün fərqdir. Mən Axrisi-dən Nikoyam. Məsuliyyətlə birləşdirin.
Mənbələr
- Rust Blog, "Supply chain attack on arrayref" (security-response, Aug 20, 2026)blog.rust-lang.org
- RUSTSEC-2026-0260 (arrayref)github.com
- RustSec issue #3161 (the original report, IOCs, victims)github.com
- SafeDep technical analysissafedep.io
- GitHub issue on the repo (0.3.11 spotted)github.com
- crates.iocrates.io
- Hacker News (554 points)news.ycombinator.com
- BleepingComputerwww.bleepingcomputer.com



