+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Rust crate изврши малициозен софтвер при компајлирање. 86 минути.

Rust crate со четири макроа и 260 милиони преземања додава една зависност, а `cargo build` извршува бинарна датотека од непознат извор на вашата машина.

Rust crate со четири макроа и 260 милиони преземања додава една зависност, а `cargo build` извршува бинарна датотека од непознат извор на вашата машина. 20 август 2026: arrayref 0.3.10 слетува на crates.io, зависејќи од proc-macro1 — не proc-macro2, вистинскиот — чија скрипта за изградба презема корисен товар, го става во /tmp/rust-setup и го стартува одвоено додека вашиот проект се компајлира. Чистите верзии се отстранети, така што сопственото предупредување на Cargo ве води до отруената. 86 минути подоцна е избришана.

Прочитајте го пишаното издание (англиски) ↗

Што покрива ова видео

  • cargo build извршува бинарна датотека од непознат извор
  • Признанија: Rust Blog, SafeDep, Hacker News
  • Ова е The Daily Diff, постмортем
  • Временска рамка: 02:11 поставување → 07:15 објавено → 08:41 избришано
  • Механизам: build.rs, без песок, мамка за отстранување

Преведен транскрипт

Преведено од оригиналната англиска нарација. Достапното аудио и наслови се контролирани од YouTube.

cargo build извршува бинарна датотека од непознат извор

0:00 Rust crate со четири макроа и четвртина милијарда преземања додава една зависност, а cargo build извршува бинарна датотека од непознат извор на вашата машина. 20 август 2026 година. arrayref 0.3.10 слетува на crates.io, зависејќи од proc-macro1. Не proc-macro2, вистинскиот: разлика од една цифра, а неговата скрипта за изградба извршува корисен товар додека вашиот проект се компајлира. Безбедносниот тим на Rust го брише 86 минути подоцна.

Признанија: Rust Blog, SafeDep, Hacker News

0:22 SafeDep ја објавува анализата. Hacker News: 554 поени. Како се случува, зошто Cargo го дозволува и кој ја добива вината. Ова е The Daily Diff, постмортем. Два часот наутро, UTC.

Ова е The Daily Diff, постмортем

0:33 Сметка наречена d-tolney, едно писмо од Дејвид Толнај, кој одржува половина од Rust, го објавува 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 и ги отстранува сите постари верзии. Cargo печати: размислете за ажурирање на верзија која не е отстранета. Единствената преостаната е отруената.

1:02 Предупредувањето е мамката. Истата минута, безбедносна фирма го пријавува тоа на Rust. 07:54, RustSec проблем. 08:29, проблем на репозиториумот; напаѓачот одговара со 0.3.11 и втора малициозна зависност. 08:41, избришана. Осумдесет и шест минути. Зошто? Еден: Cargo ги гради сите декларирани зависности, повикани или не. Една линија во манифестот е доволна.

1:21 Два: скрипта за изградба работи на вашата машина, како вие, со вашите SSH клучеви и cargo

Механизам: build.rs, без песок, мамка за отстранување

1:26 токен, пред да се компајлира вашиот код. Без песок, по дизајн: така crate-овите наоѓаат C библиотеки. Три: внатре е вистинскиот proc-macro2, така што изградбата е успешна. Корисниот товар: TLS клиент кој доверува било каков сертификат презема бинарна датотека, ја става во /tmp/rust-setup и ја стартува одвоено. На Windows се пренасочува преку wscript за да го избегне објектот на Cargo; изворен коментар го кажува тоа. Втората фаза, според RustSec нишката: алатка за далечински пристап наменета за

1:52 прелистувачи и крипто-паричници. Поетски, бидејќи најголемите корисници на arrayref вклучуваат secp256k1 и Solana. git blame. Моделот на Cargo, педесет и пет проценти: зависностите извршуваат код на вашата машина при компајлирање, без песок, а предупредувањето за отстранување ги водеше луѓето кон

git blame — поделбата

2:07 отровот. Една сметка, триесет: една акредитива повторно објавува crate во кој веруваат четвртина милијарда преземања. Цифрата еден, петнаесет: еден притисок на тастатурата од најдоверливиот crate на Rust, и никој не го чита дрвото. Радиус на експлозија: 2.285 преземања за 86 минути. Помалку од десет проценти од сообраќајот, бидејќи повеќето lockfiles содржеа 0.3.9. crates.io вели дека нема докази за употреба.

Радиус на експлозија: 2.285 преземања

2:27 Двајца луѓе на RustSec нишката не се согласуваат; еден наоѓа systemd сервис. На Hacker News, главната нишка не е за малициозниот софтвер. Тоа е страницата на crate, каде што 0.3.10 сега никогаш не постоеше. Пресуда, постмортем: NEEDS REVIEW. Осумдесет и шест минути за бришење, блог пост истиот ден, сметката заклучена: тој дел е SHIP IT. Но страницата на crate покажува дека ништо не се случило, cargo audit молчи за кеширана

Пресуда + линијата за понеделник

2:48 копија, а скриптите за изградба сè уште работат како вие. Понеделник: извршете ја командата find на Rust блогот, и третирајте го предупредувањето за отстранување како прашање, а не како инструкција. Испратете ми го инцидентот за кој сè уште не ви е дозволено да зборувате, во коментари, или на the daily diff dot dev. И тоа е разликата за денес. Јас сум Нико од Axrisi. Спојувајте одговорно.

Извори

  1. Rust Blog, "Supply chain attack on arrayref" (security-response, Aug 20, 2026)blog.rust-lang.org
  2. RUSTSEC-2026-0260 (arrayref)github.com
  3. RustSec issue #3161 (the original report, IOCs, victims)github.com
  4. SafeDep technical analysissafedep.io
  5. GitHub issue on the repo (0.3.11 spotted)github.com
  6. crates.iocrates.io
  7. Hacker News (554 points)news.ycombinator.com
  8. BleepingComputerwww.bleepingcomputer.com

Поврзани видеа

postmortem · mk · 13 сеп. 2026 г.

Единаесет линии JavaScript го скршија интернетот. Едно необјавување.

22 март 2016 година, 21:30 UTC: програмер ги необјавува сите 273 од неговите npm пакети откако npm го предава името на пакетот „kik“ на Kik, апликацијата за пораки, чиј патентен застапник вети „адвока

2:52 ↗
postmortem · mk · 25 сеп. 2026 г.

Една милисекундна грешка го запре воздушниот сообраќај во Велика Британија. Шест часа.

Во 10:00 часот во вторник, 8 септември, едно рутинско барање за squawk-код во Националниот воздушен систем (NAS) на NATS е прекинато од порака со повисок приоритет додека делумно ажурира вредност. Про

3:06 ↗
postmortem · mk · 22 сеп. 2026 г.

Рестартирањето ја врати Телстра во 2006 година. Девет милиони телефони.

Инженер во Мелбурн повторно вклучува временски шасија во 2:50 часот по полноќ, и до појадок најголемата мобилна мрежа во Австралија се согласува дека е ноември 2006 година. 8 јули 2026 година: GPS кар

3:15 ↗