कम्पाइल समयमा रस्ट क्रेटले मालवेयर चलायो। 86 मिनेट।
260 मिलियन डाउनलोड भएको चार-म्याक्रो रस्ट क्रेटले एउटा निर्भरता थप्छ, र `cargo build` ले तपाईको मेसिनमा एक अपरिचित व्यक्तिको बाइनरी चलाउँछ।
260 मिलियन डाउनलोड भएको चार-म्याक्रो रस्ट क्रेटले एउटा निर्भरता थप्छ, र `cargo build` ले तपाईको मेसिनमा एक अपरिचित व्यक्तिको बाइनरी चलाउँछ। अगस्ट 20, 2026: arrayref 0.3.10 crates.io मा proc-macro1 मा निर्भर हुँदै आउँछ — वास्तविक proc-macro2 होइन — जसको बिल्ड स्क्रिप्टले पेलोड डाउनलोड गर्छ, यसलाई /tmp/rust-setup मा राख्छ र तपाईको प्रोजेक्ट कम्पाइल भइरहेको बेला यसलाई छुट्याएर उत्पन्न गर्छ। सफा संस्करणहरू हटाइन्छ ताकि कार्गोको आफ्नै चेतावनीले तपाईलाई दूषित संस्करणमा पुर्याउँछ। 86 मिनेट पछि यो मेटाइन्छ।
लिखित संस्करण पढ्नुहोस् (अंग्रेजी) ↗
यो भिडियोले के समेट्छ
- cargo build ले एक अपरिचित व्यक्तिको बाइनरी चलाउँछ
- रसिदहरू: Rust Blog, SafeDep, Hacker News
- यो The Daily Diff, पोस्टमार्टम हो
- समयरेखा: 02:11 मञ्चन → 07:15 प्रकाशित → 08:41 मेटाइएको
- प्रक्रिया: build.rs, स्यान्डबक्स छैन, याङ्क प्रलोभन
अनुवादित ट्रान्सक्रिप्ट
मूल अंग्रेजी कथाबाट अनुवादित। उपलब्ध अडियो र क्याप्सनहरू YouTube द्वारा नियन्त्रित हुन्छन्।
cargo build ले एक अपरिचित व्यक्तिको बाइनरी चलाउँछ
0:00 एक चौथाई बिलियन डाउनलोड भएको चार-म्याक्रो रस्ट क्रेटले एउटा थप्छ निर्भरता, र cargo build ले तपाईको मेसिनमा एक अपरिचित व्यक्तिको बाइनरी चलाउँछ। अगस्ट 20, 2026। arrayref 0.3.10 crates.io मा proc-macro1 मा निर्भर हुँदै आउँछ। proc-macro2 होइन, वास्तविक एक: एक अंक फरक, र यसको बिल्ड स्क्रिप्टले एउटा चलाउँछ तपाईको प्रोजेक्ट कम्पाइल भइरहेको बेला पेलोड। रस्टको सुरक्षा टोलीले यसलाई 86 मिनेट पछि मेट्छ।
रसिदहरू: Rust Blog, SafeDep, Hacker News
0:22 SafeDep ले टुक्रा पार्ने काम प्रकाशित गर्छ। Hacker News: 554 अंक। यो कसरी हुन्छ, कार्गोले किन यसलाई अनुमति दिन्छ, र कसले दोष पाउँछ। यो The Daily Diff, पोस्टमार्टम हो। बिहान दुई बजे, UTC।
यो The Daily Diff, पोस्टमार्टम हो
0:33 d-tolney नामक खाता, डेभिड टोल्नेबाट एक अक्षर, जसले रस्टको आधा हिस्सा कायम राख्छ, proc-macro1 1.0.106 प्रकाशित गर्छ: वास्तविक
समयरेखा: 02:11 मञ्चन → 07:15 प्रकाशित → 08:41 मेटाइएको
0:41 proc-macro2, पुनःनामाकरण गरिएको। मञ्चन। 07:11। संस्करण 1.0.107 ले एउटा बिल्ड स्क्रिप्ट थप्छ, साथै base64, TLS र एक HTTP क्लाइन्ट। एक टोकन पार्सरको लागि। 07:15। मर्मतकर्ताको खाताले arrayref लाई 0.3.10 को रूपमा पुनःप्रकाशित गर्छ र हरेक पुरानो संस्करण हटाउँछ। कार्गोले छाप्छ: हटाइएको संस्करणमा अद्यावधिक गर्ने विचार गर्नुहोस्। बाँकी रहेको एक मात्र दूषित संस्करण हो।
1:02 चेतावनी प्रलोभन हो। त्यही मिनेटमा, एक सुरक्षा फर्मले रस्टलाई रिपोर्ट गर्छ। 07:54, एक RustSec समस्या। 08:29, रेपोमा एक समस्या; आक्रमणकर्ताले 0.3.11 र दोस्रोसँग जवाफ दिन्छ दुर्भावनापूर्ण निर्भरता। 08:41, मेटाइयो। असि मिनेट। किन? एक: कार्गोले हरेक घोषित निर्भरता बनाउँछ, बोलाइएको वा नबोलाइएको। एउटा मेनिफेस्ट लाइन पर्याप्त छ।
1:21 दुई: एउटा बिल्ड स्क्रिप्ट तपाईको मेसिनमा, तपाईको रूपमा, तपाईको SSH कुञ्जीहरू र कार्गो सहित चल्छ
प्रक्रिया: build.rs, स्यान्डबक्स छैन, याङ्क प्रलोभन
1:26 टोकन, तपाईको कोड कम्पाइल हुनु अघि। स्यान्डबक्स छैन, डिजाइन अनुसार: यसरी क्रेटहरूले C पुस्तकालयहरू फेला पार्छन्। तीन: भित्र वास्तविक proc-macro2 छ, त्यसैले बिल्ड सफल हुन्छ। पेलोड: कुनै पनि प्रमाणपत्रमा विश्वास गर्ने TLS क्लाइन्टले बाइनरी ल्याउँछ, यसलाई /tmp/rust-setup मा राख्छ र यसलाई छुट्याएर उत्पन्न गर्छ। Windows मा यसले कार्गोको काम वस्तुबाट उम्कन wscript मार्फत डाइभर्ट गर्छ; एक स्रोत टिप्पणीले भन्छ। दोस्रो चरण, RustSec थ्रेड अनुसार: ब्राउजर र क्रिप्टो वालेटहरूलाई लक्षित गरिएको रिमोट-एक्सेस उपकरण।
1:52 ब्राउजर र क्रिप्टो वालेटहरूलाई लक्षित गरिएको रिमोट-एक्सेस उपकरण। काव्यात्मक, किनभने arrayref का सबैभन्दा ठूला प्रयोगकर्ताहरूमा secp256k1 र Solana समावेश छन्। git blame। कार्गोको मोडल, पचपन्न प्रतिशत: निर्भरताहरूले तपाईको मेसिनमा कम्पाइल समयमा कोड चलाउँछन्, स्यान्डबक्स छैन, र याङ्क चेतावनीले मानिसहरूलाई विषमा पुर्यायो। एउटा खाता, तीस: एउटा प्रमाण
git blame — विभाजन
2:07 एउटा खाता, तीस: एउटा प्रमाण एक चौथाई बिलियन डाउनलोड भएको क्रेट पुनःप्रकाशित गर्छ एक चौथाई बिलियन डाउनलोड भएको क्रेट पुनःप्रकाशित गर्छ अंक एक, पन्ध्र: रस्टको सबैभन्दा विश्वसनीय क्रेटबाट एक किस्ट्रोक, र कसैले पनि रूख पढ्दैन। विस्फोट त्रिज्या: 86 मिनेटमा 2,285 डाउनलोडहरू। ट्राफिकको दस प्रतिशत भन्दा कम, किनभने अधिकांश लकफाइलहरूले 0.3.9 समातेका थिए। crates.io ले प्रयोगको कुनै प्रमाण छैन भन्छ।
विस्फोट त्रिज्या: 2,285 डाउनलोडहरू
2:27 RustSec थ्रेडमा दुई जना असहमत छन्; एकले systemd सेवा फेला पार्छ। Hacker News मा शीर्ष थ्रेड मालवेयरको बारेमा छैन। यो क्रेट पृष्ठ हो, जहाँ 0.3.10 अब कहिल्यै अस्तित्वमा थिएन। निर्णय, पोस्टमार्टम: NEEDS REVIEW। मेट्नको लागि असि मिनेट, सोही दिनको ब्लग पोस्ट, खाता लक: त्यो भाग SHIP IT हो। तर क्रेट पृष्ठले केही भएको देखाउँदैन, cargo audit क्यास गरिएको प्रतिलिपिमा मौन रहन्छ,
निर्णय + सोमबारको लाइन
2:48 र बिल्ड स्क्रिप्टहरू अझै पनि तपाईको रूपमा चल्छन्। सोमबार: रस्ट ब्लगको find कमान्ड चलाउनुहोस्, र याङ्क चेतावनीलाई प्रश्नको रूपमा लिनुहोस्, निर्देशनको रूपमा होइन। तपाईंलाई अझै पनि बोल्न अनुमति नभएको घटना मलाई पठाउनुहोस्, टिप्पणीहरूमा, वा daily diff dot dev मा। र आजको लागि यही भिन्नता हो। म Axrisi बाट Niko हुँ। जिम्मेवारीपूर्वक मर्ज गर्नुहोस्।
स्रोतहरू
- 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



