Fetching from the wire…
Public story · 2026-09-18 · high
A new benchmark finds the gaps trace to different assumptions about dependency scope, not bugs, ahead of the EU's 2027 mandate.
Why now: The paper posted to arXiv on September 18, 14 months before compliance becomes mandatory.
Three widely used SBOM generators produce different results on the same codebase, according to a study on arXiv that ran the tools against more than 3,000 JavaScript and Rust projects and checked their output against dependency lockfiles.
The disagreement shows up in two places: which dependencies a tool lists at all, and how complete each listed entry is. The paper traces this to differing assumptions about dependency scope, naming conventions, provenance tracking, and how a dependency graph gets represented in the SBOM format itself. None of it is a bug in the ordinary sense. Each tool is doing what it was built to do, and the three builds don't agree.
That matters because the EU Cyber Resilience Act makes SBOMs mandatory in December 2027. A software bill of materials is supposed to be a complete, checkable inventory of what's inside a product, the thing a regulator or a customer points to and asks "is this accurate." If three respected generators produce three different inventories from the identical source tree, "accurate" stops being a property of the practice and becomes a property of which vendor's tool you happened to run.
The paper doesn't name which of the three tools comes closest to the lockfile ground truth on either axis, coverage or completeness, so there's no ranking to hand a team picking a generator right now. What it does establish is that the choice isn't neutral. A team that locks in a generator 14 months out is also locking in that generator's specific blind spots on dependency naming and provenance, and won't find out which ones until an SBOM gets audited against the regulation.
Each link below shares sources, entities, or timing with this story.
Most coding agents run on JavaScript runtimes and eat 300MB of RAM just sitting idle. Zerostack is built in pure Rust, uses ~8MB on idle, ~12MB while working, and posts 0.0% idle CPU. It hit 1.0 on crates.io this week with 474 points and 252 comments on Hacker News. The archit...
A month ago, TeamPCP compromised Trivy's GitHub Actions runners. Then they trojanized LiteLLM on PyPI. Now Wiz Research confirms they've expanded to npm via a worm called CanisterWorm, using stolen publish tokens to push malicious packages across JavaScript's package ecosystem...
MemPalace (~53.6K stars) claims best-benchmarked, against mem0 (~57.8K) and claude-mem (~80.8K) (GitHub). Agent memory went from experimental nicety to a competitive subcategory with published benchmarks. Pair this with the local-first angle: Mnemo offers a Rust + SQLite + pet...
v1.28.0-pre1 replaces JavaScript proof-of-work with Rust compiled to WASM using SIMD acceleration where the browser supports it, and the difficulty scale changes from leading nibbles to leading bits (GitHub). Clients disabling WebAssembly fall back to pure JS via wasm2js, whic...
Andrej Karpathy published what amounts to a manifesto for the next era of software. In a blog post summarizing his Sequoia Ascent 2026 fireside, he lays out three eras: Software 1.0 (humans write code), Software 2.0 (neural networks learn patterns from data), and Software 3.0...
As of this morning, Article 50 applies to every AI system that interacts with humans or generates synthetic content in the EU. Conversational agents must disclose they're AI. AI-generated output must carry machine-readable marking. Deepfakes must be labeled. Same day, the Euro...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.