The CVSS 9.8 score assigned to this incident fundamentally misrepresents what occurred. This is not a vulnerability — it is a confirmed supply chain compromise where arrayref 0.3.10 was weaponized through a rogue dependency reaching out to command-and-control infrastructure. The distinction is not semantic. Once malicious code is confirmed in a published artifact, the question of 'exploitability' is irrelevant; you are dealing with propagation, not probability.

The trigger condition matters critically. The payload executes during cargo build, which runs with the developer's full privilege context, network egress capabilities, and often environment credentials. This was not opportunistic — the attacker understood that compilation-phase execution provides an ideal foothold into build pipelines. Anyone who pulled version 0.3.10 has already triggered the C2 registration.

Before assigning severity scores, map the blast radius. Determine how many downstream crates transitively depend on arrayref, which build environments incorporated the compromised version, and whether the C2 infrastructure remains active. The propagation geometry of a supply chain compromise follows the dependency graph's topology — some consumers face near-certain execution while others may never trigger the payload. This variance is invisible in a severity number.

This is the seventh documented case of this exact attack pattern in five years: event-stream, colors.js, ua-parser-js, pyjks, multiple Ruby gems, and now arrayref. Each generated high-CVSS CVEs and forensic speculation. None produced systemic change to how registries vet publishing pipelines. The pattern is not new; the response should not be the same every time.

The precondition is not random targeting. Attackers are selecting abandoned or low-maintenance crates — packages where the original author has shifted attention elsewhere, where no security contacts exist, and where nobody monitors publishing activity. The trust surface remains (developers still depend on it) but the defensive surface has rotted away. The exposure window for an unmaintained crate with malicious code is longer because nobody is watching.

Prioritize containment over scoring. First, verify whether the C2 channel from 0.3.10 still has live connections in your build environments. Second, audit your dependency graph for any transitive consumption of arrayref 0.3.10 and identify which builds incorporated it. Third, treat this as a forcing function to evaluate whether your build pipeline has structural isolation from network egress during dependency resolution — the architectural condition that made this attack viable is the same one you should be hardening across your toolchain.