+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Rustクレートがコンパイル時にマルウェアを実行。86分。

2億6千万ダウンロードされた4マクロのRustクレートが依存関係を1つ追加し、`cargo build`があなたのマシン上で見知らぬバイナリを実行しました。

2億6千万ダウンロードされた4マクロのRustクレートが依存関係を1つ追加し、`cargo build`があなたのマシン上で見知らぬバイナリを実行しました。2026年8月20日: arrayref 0.3.10がcrates.ioに公開され、proc-macro1(本物のproc-macro2ではない)に依存。そのビルドスクリプトはペイロードをダウンロードし、/tmp/rust-setupにドロップし、プロジェクトがコンパイルされている間にデタッチして起動しました。クリーンなバージョンは取り消され(yanked)、Cargo自身の警告があなたを汚染されたバージョンに導きます。86分後に削除されました。

書面版を読む(英語) ↗

この動画の要点

  • cargo buildが見知らぬバイナリを実行
  • 証拠: Rust Blog、SafeDep、Hacker News
  • これはThe Daily Diff、事後分析
  • タイムライン: 02:11 staging → 07:15 published → 08:41 deleted
  • メカニズム: build.rs、サンドボックスなし、ヤンクによる誘引

翻訳されたトランスクリプト

オリジナルの英語ナレーションから翻訳されています。利用可能なオーディオとキャプションはYouTubeによって管理されています。

cargo buildが見知らぬバイナリを実行

0:00 2億5千万ダウンロードされた4マクロのRustクレートが1つ追加 依存関係を追加し、cargo buildがあなたのマシン上で見知らぬバイナリを実行します。 2026年8月20日。 arrayref 0.3.10がproc-macro1に依存してcrates.ioに登場します。 本物のproc-macro2ではなく、数字が1つ違うだけ。そのビルドスクリプトが プロジェクトのコンパイル中にペイロードを実行します。 Rustのセキュリティチームは86分後にそれを削除します。

証拠: Rust Blog、SafeDep、Hacker News

0:22 SafeDepが詳細な分析を公開します。 Hacker News: 554ポイント。 それがどう起こったのか、なぜCargoがそれを許したのか、そして誰が非難されるのか。 これはThe Daily Diff、事後分析です。 午前2時、UTC。

これはThe Daily Diff、事後分析

0:33 Rustの半分を管理しているDavid Tolnayから1文字違いのd-tolneyというアカウントが proc-macro1 1.0.106を公開します: 本物の

タイムライン: 02:11 staging → 07:15 published → 08:41 deleted

0:41 proc-macro2をリネームしたもの。ステージング。 07:11。バージョン1.0.107はビルドスクリプト、さらに base64、TLS、HTTPクライアントを追加します。 トークンパーサーのために。 07:15。メンテナのアカウントはarrayrefを0.3.10として再公開し、 すべての古いバージョンを取り消します(yanks)。 Cargoは「取り消されていないバージョンへの更新を検討してください」と表示します。 残された唯一のバージョンは汚染されたものです。

1:02 警告が誘引です。 同分、セキュリティ企業がRustに報告します。 07:54、RustSecのイシュー。 08:29、リポジトリにイシュー。攻撃者は0.3.11と2番目の 悪意のある依存関係で応答します。08:41、削除。 86分。なぜ? 1: Cargoは宣言されたすべての依存関係を、呼び出されるか否かにかかわらずビルドします。 マニフェストの1行で十分です。

1:21 2: ビルドスクリプトはあなたのマシン上で、あなたのSSHキーとCargo

メカニズム: build.rs、サンドボックスなし、ヤンクによる誘引

1:26 トークンを使って、あなたのコードがコンパイルされる前にあなたとして実行されます。 意図的にサンドボックスはありません。それがクレートがCライブラリを見つける方法です。 3: 内部には本物のproc-macro2があるので、ビルドは成功します。 ペイロード: 任意の証明書を信頼するTLSクライアントがバイナリを取得し、 /tmp/rust-setupにドロップし、デタッチして起動します。 Windowsでは、Cargoのジョブオブジェクトから脱出するためにwscriptを経由します。ソース コメントにそうあります。 RustSecスレッドによると、セカンドステージは、ブラウザと暗号ウォレットを標的とした

1:52 リモートアクセスツールです。 arrayrefの最大のユーザーにはsecp256k1とSolanaが含まれるため、これは詩的です。 git blame。Cargoのモデル、55%: 依存関係はコンパイル時にあなたの マシン上でコードを実行し、サンドボックスはなく、ヤンク警告が人々を

git blame — 分割

2:07 毒へと導いた。1つのアカウント、30%: 1つの認証情報が 2億5千万ダウンロードが信頼するクレートを再公開しました。 億ダウンロードが信頼するクレートを再公開しました。 数字の1、15%: Rustで最も信頼されているクレートから1キーストローク 誰もツリーを読んでいない。 被害範囲: 86分間で2,285ダウンロード。 ほとんどのロックファイルが0.3.9を保持していたため、トラフィックの10%未満です。 crates.ioには使用の証拠はないとあります。

被害範囲: 2,285ダウンロード

2:27 RustSecスレッドの2人がこれに異議を唱え、1人はsystemdサービスを発見しました。 Hacker Newsのトップスレッドはマルウェアについてではありません。 クレートページについてで、0.3.10はもはや存在しなかったことになっています。 評決、事後分析: NEEDS REVIEW。 削除まで86分、同日中にブログ投稿、アカウントロック: その部分は SHIP ITです。 しかし、クレートページには何も起こらなかったことになっており、cargo auditはキャッシュされた

評決 + 月曜日のライン

2:48 コピーについては沈黙し、ビルドスクリプトは依然としてあなたとして実行されます。 月曜日: Rustブログの検索コマンドを実行し、ヤンク警告を 指示ではなく質問として扱ってください。 まだ話すことが許されていないインシデントを、 コメント欄、またはdaily diff dot devまで送ってください。 今日のdiffは以上です。 AxrisiのNikoでした。 責任を持ってマージしてください。

情報源

  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 · ja · 2026/09/13

JavaScriptの11行がインターネットを破壊。アンパブリッシュは1回。

2016年3月22日21:30 UTC:開発者が彼のnpmパッケージ273個すべてをアンパブリッシュした。これは、npmがパッケージ名「kik」をメッセージングアプリのKikに渡した後のことである。Kikの特許代理人は「弁護士がお前のドアを叩く」と脅していた。273個のうちの1つがleft-padである。これは文字列の前にスペースを入れる11行のコードで、月に250万回ダウンロードされていた。数分

2:52 ↗
postmortem · ja · 2026/09/25

1ミリ秒のバグで英国の航空交通が6時間停止

9月8日火曜日の午前10時、NATSの国家空域システム(NAS)内で通常のスコークコード要求が、値の更新途中に優先度の高いメッセージによって中断された。露出ウィンドウは約1ミリ秒。要求は誤ったまま再開され、フライトデータが破損し、午後7時30分までに2,000便以上の英国発着便が遅延、欠航、または目的地変更となった。

3:06 ↗
postmortem · ja · 2026/09/22

再起動でテルストラは2006年に逆戻り。900万台の電話が影響。

メルボルンのエンジニアが午前2時50分にタイミングシャーシの電源を入れ直したところ、朝食の時間までにはオーストラリア最大のモバイルネットワークが「今は2006年11月である」と認識する事態に。2026年7月8日、テルストラのNTPシャーシ内のGPSカードが電源修理中に再起動し、ファームウェアにはGPS週数ロールオーバーのアップデートが一度も適用されていなかったため、古いエポックを選択し、1,024

3:15 ↗