Malicious arrayref 0.3.10 was downloaded 2,285 times from crates.io in the 86 minutes before Rust's security response team deleted it on August 20. Lockfiles still pinned to 0.3.9 kept most builds away from its unsandboxed build-script payload.
Reality
- Evidence62
- Adoption18
- Hype gap+8
- Incentives
- Insufficient
- Confidence60
Malicious versions of three Rust crates ran code at compile time on August 20. Wiz says the infrastructure overlaps with DPRK operations, so the campaign should be treated as live.
Perspective Coverage
6 publishers
- Builder
- Builder 45%
- Operator
- Operator 48%
- Investor
- Investor 7%
Reality
- Evidence80
- Adoption30
- Hype gap+25
- Incentives55
- Confidence75
The Rust Security Response Team deleted proc-macro1 and arrayref 0.3.10 on August 20 after a build script fetched and launched a binary. The lure was a yank warning.
Publishers:blog.rust-lang.org · dev.to · lwn.net · research.jfrog.com · runtimewire.com · rustsec.org · socket.dev Perspective Coverage
7 publishers
- Builder
- Builder 38%
- Operator
- Operator 54%
- Investor
- Investor 8%
Reality
- Evidence86
- Adoption15
- Hype gap+35
- Incentives60
- Confidence82
Version 2.11 reads Cargo, uv and go.work workspaces so a Python test can be ordered behind a Rust build in one task graph. The support ships as experimental, switched on by future flags that can still change.
Publishers:turborepo.dev
Reality
- Evidence58
- Adoption26
- Hype gap+27
- Incentives84
- Confidence54
A developer checked npm, PyPI and crates.io for machine-readable funding data using nothing but their public APIs. npm has a declared field whose value arrives in three shapes, PyPI has hand-typed labels, and the sparse index has neither.
Reality
- Evidence58
- Adoption35
- Hype gap−12
- Incentives30
- Confidence55
Since uv 0.12.0 landed on July 28, 2026, uv init has written a src layout and a uv_build build-system table by default. The old --package tip is now backwards, and --no-package is the way back to a flat main.py.
Reality
- Evidence68
- Adoption48
- Hype gap−12
- Incentives58
- Confidence62
Attestation proves a package came out of the pipeline it names. When the pipeline is the thing that was owned, the seal still verifies, and a gate that only checks origin passes all 84 versions pushed on May 11.
Reality
- Evidence45
- Adoption45
- Hype gap+12
- Incentives30
- Confidence50
A Rust author pins his proxy's socket exhaustion on getrandom, arriving via ring via trust-dns, and later on a single into_inner() call in his own connection pool. Only one of the two comes with a mechanism.
Reality
- Evidence18
- Adoption10
- Hype gap+34
- Incentives55
- Confidence66
A blocking MCP tool call asks the client's idle timer to stay patient for four minutes. The fix that survived eleven releases is to return a readable resource as soon as the command proves it is slow.
Reality
- Evidence55
- Adoption
- Insufficient
- Hype gap+12
- Incentives62
- Confidence60
Counting JSONTestSuite fixtures before writing any parser code turned up 19 must-reject number literals that Rust's stdlib conversions accept. That is 40% of the number cases, and the same gap opens wherever a stdlib conversion is looser than the wire format.
Reality
- Evidence74
- Adoption30
- Hype gap+12
- Incentives35
- Confidence70
Wiz says the crates.io compromise executed at build time, so reviewing the library source would have caught nothing. Cargo did the rest.
Reality
- Evidence46
- Adoption71
- Hype gap+22
- Incentives68
- Confidence48
Compiling any project that resolved the poisoned crate on August 20 was enough to run a credential stealer. Wiz links the infrastructure to DPRK-attributed campaigns.
Reality
- Evidence48
- Adoption61
- Hype gap+17
- Incentives63
- Confidence52