Rust crate သည် compile လုပ်ချိန်၌ malware ကို အသုံးပြုခဲ့သည်။ ၈၆ မိနစ်။
ဒေါင်းလုဒ်ပေါင်း သန်း ၂၆၀ ရှိသော လေး macro ပါသည့် Rust crate တစ်ခုသည် တစ်ခုတည်းသော မှီခိုမှုကို ထည့်သွင်းပြီး `cargo build` သည် သင့်စက်ပေါ်တွင် သူစိမ်းတစ်ဦး၏ binary ကို run သည်။
ဒေါင်းလုဒ်ပေါင်း သန်း ၂၆၀ ရှိသော လေး macro ပါသည့် Rust crate တစ်ခုသည် တစ်ခုတည်းသော မှီခိုမှုကို ထည့်သွင်းပြီး `cargo build` သည် သင့်စက်ပေါ်တွင် သူစိမ်းတစ်ဦး၏ binary ကို run သည်။ ၂၀၂၆ ခုနှစ်၊ ဩဂုတ်လ ၂၀ ရက်နေ့- arrayref 0.3.10 သည် proc-macro1 (အမှန်တကယ် proc-macro2 မဟုတ်ဘဲ) ပေါ်တွင် မှီခိုပြီး crates.io သို့ ရောက်ရှိလာသည်။ ၎င်း၏ build script သည် payload ကို ဒေါင်းလုဒ်လုပ်ကာ /tmp/rust-setup တွင် ထည့်သွင်းပြီး သင့် project compile လုပ်နေစဉ်တွင် ၎င်းကို detached အနေဖြင့် စတင်ခဲ့သည်။ သန့်ရှင်းသော version များကို yank လုပ်ထားသောကြောင့် Cargo ၏ ကိုယ်ပိုင်သတိပေးချက်က သင့်ကို အဆိပ်သင့်သော version ဆီသို့ ခေါ်ဆောင်သွားသည်။ ၈၆ မိနစ်အကြာတွင် ၎င်းကို ဖျက်ပစ်ခဲ့သည်။
ရေးသားထားသော ထုတ်ဝေမှု (အင်္ဂလိပ်) ကို ဖတ်ရန် ↗
ဤဗီဒီယိုတွင် ဖော်ပြထားသောအရာများ
- cargo build သည် သူစိမ်းတစ်ဦး၏ binary ကို run သည်။
- ပြေစာများ: Rust Blog, SafeDep, Hacker News
- ဒါက The Daily Diff, postmortem ပါ။
- အချိန်ဇယား: ၀၂:၁၁ staging → ၀၇:၁၅ ထုတ်ဝေ → ၀၈:၄၁ ဖျက်ပစ်
- ယန္တရား: build.rs, sandbox မရှိ၊ yank lure
ဘာသာပြန်ထားသော စာသားမှတ်တမ်း
မူရင်း အင်္ဂလိပ်စကားပြောမှ ဘာသာပြန်ထားသည်။ ရရှိနိုင်သော အသံနှင့် စာတန်းထိုးများကို YouTube မှ ထိန်းချုပ်ထားသည်။
cargo build သည် သူစိမ်းတစ်ဦး၏ binary ကို run သည်။
0:00 ဒေါင်းလုဒ်ပေါင်း သန်းတစ်ရာ့ငါးဆယ်ရှိသော လေး macro ပါသည့် Rust crate တစ်ခုသည် တစ်ခုတည်းကို ထည့်သွင်းခဲ့သည်။ မှီခိုမှု၊ နှင့် cargo build သည် သင့်စက်ပေါ်တွင် သူစိမ်းတစ်ဦး၏ binary ကို run သည်။ ၂၀၂၆ ခုနှစ်၊ ဩဂုတ်လ ၂၀ ရက်နေ့။ arrayref 0.3.10 သည် proc-macro1 ပေါ်တွင် မှီခိုပြီး crates.io သို့ ရောက်ရှိလာသည်။ အမှန်တကယ် proc-macro2 မဟုတ်ဘဲ: ဂဏန်းတစ်ခု ကွာခြားပြီး ၎င်း၏ build script သည် payload ကို သင့် project compile လုပ်နေစဉ်တွင် run သည်။ Rust ၏ လုံခြုံရေးအဖွဲ့သည် ၈၆ မိနစ်အကြာတွင် ၎င်းကို ဖျက်ပစ်ခဲ့သည်။
ပြေစာများ: Rust Blog, SafeDep, Hacker News
0:22 SafeDep သည် ပြုပြင်မှုကို ထုတ်ဝေသည်။ Hacker News: ၅၅၄ မှတ်။ မည်သို့ဖြစ်ပျက်ခဲ့ပုံ၊ Cargo က အဘယ်ကြောင့် ခွင့်ပြုခဲ့ပုံ၊ နှင့် မည်သူ့ကို အပြစ်တင်ရမည်နည်း။ ဒါက The Daily Diff, postmortem ပါ။ နံနက် ၂ နာရီ၊ UTC။
ဒါက The Daily Diff, postmortem ပါ။
0:33 Rust ၏ ထက်ဝက်ကို ထိန်းသိမ်းထားသော David Tolnay နှင့် စာလုံးတစ်လုံးသာ ကွာသော d-tolney အမည်ရှိ အကောင့်တစ်ခုသည် proc-macro1 1.0.106 ကို ထုတ်ဝေခဲ့သည်။ အမှန်တကယ်
အချိန်ဇယား: ၀၂:၁၁ staging → ၀၇:၁၅ ထုတ်ဝေ → ၀၈:၄၁ ဖျက်ပစ်
0:41 proc-macro2 ကို အမည်ပြောင်းထားသည်။ Staging လုပ်နေသည်။ ၀၇:၁၁။ Version 1.0.107 သည် build script တစ်ခုနှင့် base64, TLS နှင့် HTTP client တစ်ခုကို ထည့်သွင်းခဲ့သည်။ token parser အတွက်။ ၀၇:၁၅။ ထိန်းသိမ်းသူ၏ အကောင့်သည် arrayref ကို 0.3.10 အဖြစ် ပြန်လည်ထုတ်ဝေပြီး အဟောင်း version အားလုံးကို yank လုပ်ခဲ့သည်။ Cargo က ပုံနှိပ်သည်။ yank မလုပ်ထားသော version သို့ update လုပ်ရန် စဉ်းစားပါ။ ကျန်ရှိနေသည့် တစ်ခုတည်းသော version မှာ အဆိပ်သင့်သော version ဖြစ်သည်။
1:02 သတိပေးချက်သည် မြှူဆွယ်မှုဖြစ်သည်။ ထိုမိနစ်တွင်ပင် လုံခြုံရေးကုမ္ပဏီတစ်ခုက Rust သို့ အစီရင်ခံခဲ့သည်။ ၀၇:၅၄၊ RustSec ပြဿနာတစ်ခု။ ၀၈:၂၉၊ repo ပေါ်တွင် ပြဿနာတစ်ခု; တိုက်ခိုက်သူသည် 0.3.11 နှင့် ဒုတိယ malicious dependency ဖြင့် ပြန်ဖြေခဲ့သည်။ ၀၈:၄၁၊ ဖျက်ပစ်ခဲ့သည်။ ရှစ်ဆယ့်ခြောက်မိနစ်။ အဘယ်ကြောင့်နည်း။ တစ်: Cargo သည် ကြေညာထားသော မှီခိုမှုအားလုံးကို၊ ခေါ်သည်ဖြစ်စေ မခေါ်သည်ဖြစ်စေ build လုပ်သည်။ manifest line တစ်ခုတည်းသာ လုံလောက်သည်။
1:21 နှစ်: build script တစ်ခုသည် သင့်စက်ပေါ်တွင်၊ သင့် SSH keys နှင့် cargo
ယန္တရား: build.rs, sandbox မရှိ၊ yank lure
1:26 token ဖြင့်၊ သင့် code compile မလုပ်မီတွင် run သည်။ Sandbox မရှိ၊ ဒီဇိုင်းအရ: ၎င်းသည် crates များ C libraries များကို ရှာဖွေပုံဖြစ်သည်။ သုံး: အတွင်းတွင် အမှန်တကယ် proc-macro2 ပါဝင်သောကြောင့် build သည် အောင်မြင်သည်။ Payload: မည်သည့် certificate ကိုမဆို ယုံကြည်သော TLS client သည် binary တစ်ခုကို ဆွဲယူပြီး၊ /tmp/rust-setup တွင် ထည့်သွင်းကာ detached အနေဖြင့် စတင်ခဲ့သည်။ Windows တွင် ၎င်းသည် Cargo ၏ job object မှ လွတ်မြောက်ရန် wscript မှတစ်ဆင့် ဖြတ်သန်းသွားသည်။ source comment တွင် ဖော်ပြထားသည်။ RustSec thread အရ ဒုတိယအဆင့်: browsers နှင့် crypto wallets များကို ပစ်မှတ်ထားသော
1:52 remote-access tool တစ်ခု။ ကဗျာဆန်သည်၊ arrayref ၏ အကြီးဆုံးအသုံးပြုသူများတွင် secp256k1 နှင့် Solana ပါဝင်သောကြောင့်ဖြစ်သည်။ git blame။ Cargo ၏ model၊ ငါးဆယ့်ငါးရာခိုင်နှုန်း: မှီခိုမှုများသည် သင့်စက်ပေါ်တွင် compile လုပ်ချိန်တွင် code ကို run သည်။ sandbox မရှိ၊ နှင့် yank warning က လူများကို
git blame — ကွဲပြားမှု
2:07 အဆိပ်ဆီသို့ ခေါ်ဆောင်ခဲ့သည်။ အကောင့်တစ်ခု၊ သုံးဆယ်: credential တစ်ခု ဒေါင်းလုဒ် သန်းတစ်ရာ့ငါးဆယ် ယုံကြည်ထားသော crate တစ်ခုကို ပြန်လည်ထုတ်ဝေသည်။ ဂဏန်းတစ်၊ ဆယ့်ငါး: Rust ၏ အယုံကြည်ဆုံး crate မှ keystroke တစ်ခု၊ နှင့် မည်သူမျှ သစ်ပင်ကို မဖတ်ပါ။ ထိခိုက်မှုပမာဏ: ၈၆ မိနစ်အတွင်း ဒေါင်းလုဒ် ၂,၂၈၅။ traffic ၏ ဆယ်ရာခိုင်နှုန်းအောက်၊ lockfile အများစုသည် 0.3.9 ကို ကိုင်ဆောင်ထားသောကြောင့်ဖြစ်သည်။ crates.io က အသုံးပြုမှု အထောက်အထား မရှိဟု ဆိုသည်။
ထိခိုက်မှုပမာဏ: ဒေါင်းလုဒ် ၂,၂၈၅
2:27 RustSec thread ရှိ လူနှစ်ဦးက သဘောမတူပါ။ တစ်ဦးက systemd service တစ်ခုကို ရှာတွေ့သည်။ Hacker News တွင် ထိပ်ဆုံး thread သည် malware အကြောင်း မဟုတ်ပါ။ ၎င်းသည် crate page ဖြစ်ပြီး 0.3.10 သည် ယခုအခါ မည်သည့်အခါမျှ မတည်ရှိခဲ့ပါ။ စီရင်ချက်၊ postmortem: NEEDS REVIEW။ ဖျက်ပစ်ရန် ၈၆ မိနစ်၊ ထိုနေ့မှာပင် blog post တစ်ခု၊ အကောင့်ကို lock လုပ်ထားသည်။ ထိုအပိုင်းသည် SHIP IT ဖြစ်သည်။ သို့သော် crate page က ဘာမှ မဖြစ်ခဲ့ကြောင်း ပြသသည်။ cargo audit သည် cached
စီရင်ချက် + တနင်္လာနေ့ အခြေအနေ
2:48 copy ပေါ်တွင် တိတ်ဆိတ်နေပြီး build script များသည် သင့်အတိုင်း ဆက်လက် run နေသည်။ တနင်္လာနေ့: Rust blog ၏ find command ကို run ပါ၊ နှင့် yank warning ကို ညွှန်ကြားချက်အဖြစ် မဟုတ်ဘဲ မေးခွန်းအဖြစ် မှတ်ယူပါ။ သင် ဆက်လက် ပြောခွင့်မရသေးသော အဖြစ်အပျက်ကို ကျွန်ုပ်ထံ ပေးပို့ပါ၊ comments တွင်၊ သို့မဟုတ် the daily diff dot dev တွင်။ ဒါကတော့ ဒီနေ့အတွက် diff ပါ။ ကျွန်တော်က 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



